2012-03-13 187 views
2

我在本地運行PHP(根本沒有涉及Web服務器)。我無法訪問路徑中具有空格的文件。帶空格的文件名

我的梗概的情況是

$indexFile = "file:///Users/username/Documents/My Folder/test.txt"; 
echo file_exists($indexFile); 

或:

$indexFile = "file:///Users/username/Documents/My‰20Folder/test.txt"; 
echo file_exists($indexFile); 

AFAICT這後者的情況下是一個合式文件方案URI。如果我在那裏拖動文件,這正是瀏覽器位置字段中顯示的內容。

無空格的URI沒有任何問題。不幸的是,我無法將「我的文件夾」更改爲「我的文件夾」,此外,我想找到一個解決方案。

我嘗試過使用urlencode,rawurlencode,escapeshellarg,我試着用反斜線轉義的空格"My\ Folder"代替%20,但這些都不起作用。我也通過谷歌和stackoverflow追捕,但雖然有很多suggstions,問題仍然沒有答案:

如何使用包含空格的路徑訪問任意文件(在本地主機上)?

+5

儘量擺脫文件的'://'在一開始並看看會發生什麼 – 2012-03-13 09:46:59

+0

順便說一句,如果沒有的那些工作並且最糟糕的是,嘗試在系統的PATH中添加「Users/username/Documents/My Folder /」,然後在設置文件中通過名稱(「test.txt」)引用文件。 – user980058 2012-03-13 09:54:37

+0

另外,我推薦'var_dump()'而不是'echo'來輸出一個布爾值。 – 2012-03-13 09:55:37

回答

1

從第一個代碼片段中刪除第一個file://。它會工作。

$indexFile = "file:///Users/username/Documents/My Folder/test.txt"; 
echo file_exists(str_replace("file://", "", $indexFile)); 
2

這看起來像一個Mac OSX上的文件系統,所以這應該工作:

$indexFile = "/Users/username/Documents/My Folder/test.txt" 
echo file_exists("${indexFile}");