我使用php dir()函數從目錄獲取文件,並通過它循環。即使文件存在,php dir函數也會返回null
$d = dir('path');
while($file = $d->read()) {
/* code here */
}
但這返回false,並給出
上的空
調用成員函數read()方法,但該目錄是否存在以及文件在那裏。
此外,是否有任何替代我的上述代碼?
我使用php dir()函數從目錄獲取文件,並通過它循環。即使文件存在,php dir函數也會返回null
$d = dir('path');
while($file = $d->read()) {
/* code here */
}
但這返回false,並給出
上的空
調用成員函數read()方法,但該目錄是否存在以及文件在那裏。
此外,是否有任何替代我的上述代碼?
如果你看看到documentation您將看到:
返回目錄的實例,或NULL以錯誤的參數,或 FALSE在另一個錯誤的情況。
所以Call to member function read() on null
意味着你有一個錯誤(我認爲這是failed to open dir: No such file or directory in...
)。
您可以使用file_exists和is_dir來檢查給定的路徑是否是目錄以及它是否真的存在。
例子:
<?php
...
if (file_exists($path) && is_dir($path)) {
$d = dir($path);
while($file = $d->read()) {
/* code here */
}
}
嘗試使用此:
if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Entries:\n";
/* This is the correct way to loop over the directory. */
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}
/* This is the WRONG way to loop over the directory. */
while ($entry = readdir($handle)) {
echo "$entry\n";
}
closedir($handle);
}
你可以試試這個:
$dir = new DirectoryIterator(dirname('path'));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
var_dump($fileinfo->getFilename());
}
}
來源:PHP script to loop through all of the files in a directory?
如有檢查您的文件路徑的路徑是正確的。那麼請試試這個代碼,這可能會幫助你。由於
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
是路徑的絕對路徑?相對路徑?相對於哪裏? –
使用'is_dir(path);'函數 – Jer