2014-05-13 66 views
-1

我想知道爲什麼file_get_contents()沒有使用我的變量(包含一個linux路徑)。這是我在做什麼:PHP readfile()或file_get_contents()給出錯誤

find $PWD -name "*.png" > myList 

然後我用我的PHP腳本:

$list_of_files = file('myList'); 

到目前爲止好。但是當我做

echo file_get_contents($list_of_files[2]); 
    echo $list_of_files[2]; 

我得到一個警告,file_get_contents找不到指定的文件。而第二個回聲打印路徑很好。

完全混淆爲什麼它這樣做。任何見解將不勝感激。

謝謝。

+1

中存在的文件(路徑)您應該檢查文件權限並確保該文件確實存在 –

回答

0

您有路徑,但無法獲取文件的內容。這可能是因爲您沒有權限或文件不存在。

+0

我已經在該目錄中的文件上執行了chmod 777。它仍然給我錯誤警告:file_get_contents(./ 1/11/alksdjflkdjf.png ):無法打開流:沒有這樣的文件或目錄 – errorprone

1

首先var_dump($list_of_files)看你有什麼,我懷疑只有文件名列表,即不是絕對路徑。所以除非從同一個文件夾運行,否則php不會找到這些文件。

在任何情況下,你可能關閉使用glob將從PHP

這裏內直接返回文件名的數組更好的使用水珠遞歸PHP get file listing including sub directories

+0

var_dump($ list_of_files): 這些是正確的路徑名。即我有一個文件夾_1_,其中包含另一個文件夾_11_。 '陣列(5){ [0] => 串(24)」 ./1/11/alksdjflkdjf.png 「 [1] => 串(13)」 ./1/whoo.png 「 [2] => 串(17)」 ./2/alkjdfjj.png 「 [3] => 串(16)」 ./3/sfkkkks.png 「 [4] => string(12)「./large.png 」 }' – errorprone

+0

'。/'與當前文件夾相關,只要shell命令從文件夾以php腳本運行即可。正如所述更好地使用glob,你仍然可以使用它來返回'* .png' – andrew

0

確保什麼路徑是相對的例子要讀取文件內容的文件夾:

就在使用的file_get_contents補充:

echo getcwd(); 

現在檢查該文件夾

0

這是愚蠢的我,但我發現我沒有修剪換行符:(

所以基本上一個

foreach($list_of_files as $i){ $j = trim($i); echo file_get_contents($j);} 
+0

所以我們都是正確的,文件不存在於你期望的目錄中:) –