4

这实际上是一件容易的事

我想显示位于指定文件夹中的所有文件的内容。

我正在传递目录名称

echo "<a href='see.php?qname=". $_name ."'>" . $row["qname"] . "</a>";

在第二页,

我正在遍历目录内容

while($entryname = readdir($myDirectory)) 
{
            if(is_dir($entryname))
            {
                continue;
            }   
            if($entryname=="." || $entryname==".." )
            {}
            else
            {
                if(!is_dir($entryname))
                {   
                    $fileHandle=fopen($entryname, "r");
                    
                    while (!feof($fileHandle) ) {
           $line = fgets($fileHandle);
           echo $line . "<br />";
        }

. . .

但我无法读取任何文件,我也更改了他们的权限。

我尝试静态放置目录名称,这有效,有人可以建议我做错了什么吗?

4

2 回答 2

7

$entryname将只包含文件名,没有路径信息。您必须自己手动重建路径。例如

$dh = opendir('/path/you/want/to/read/');
while($file = readdir($dh)) {
    $contents = file_get_contents('/path/you/want/to/read/' . $file);
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^---include path here
}

如果没有“读取文件代码”中的显式路径,您将尝试打开并读取脚本当前工作目录中的文件,而不是您从中读取文件名的导演。

于 2013-11-14T16:22:48.367 回答
5

简单得多:

foreach(glob("$myDirectory/*") as $file) {
    foreach(file($file) as $line) {
        echo $line . "<br />";
    }
}

更简单:

foreach(glob("$myDirectory/*") as $file) {
    echo nl2br(file_get_contents($file));
}
于 2013-11-14T16:31:21.123 回答