Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从目录中读取文件名_Php - Fatal编程技术网

Php 从目录中读取文件名

Php 从目录中读取文件名,php,Php,我正在尝试使用此代码读取和显示目录中的所有文件。 它适用于与脚本位于同一目录中的文件。但当我试图在文件夹(files/)中显示文件时,它会给我带来问题 我尝试过将directoy变量设置为许多不同的内容。比如… 文件/ 文件 /文件/ 等似乎什么都不管用。有人知道为什么吗 <?php $dhandleFiles = opendir('files/'); $files = array(); if ($dhandleFiles) { while (false !== ($fname

我正在尝试使用此代码读取和显示目录中的所有文件。 它适用于与脚本位于同一目录中的文件。但当我试图在文件夹(files/)中显示文件时,它会给我带来问题

我尝试过将directoy变量设置为许多不同的内容。比如…
文件/
文件
/文件/
等似乎什么都不管用。有人知道为什么吗

<?php
$dhandleFiles = opendir('files/');
$files = array();

if ($dhandleFiles) {
    while (false !== ($fname = readdir($dhandleFiles))) {
        if (is_file($fname) && ($fname != 'list.php') && ($fname != 'error.php') && ($fname != 'index.php')) {
            $files[] = (is_dir("./$fname")) ? "{$fname}" : $fname;
        }
    }
    closedir($dhandleFiles);
}

echo "Files";
echo "<ul>";
foreach ($files as $fname) {
    echo "<li><a href='{$fname}'>{$fname}</a></li>";
}
echo "</ul>";
?>

阵列中没有包含完整路径:

while($fname = readdir($dhandleFiles)) {
    $files[] = 'files/' . $fname;
               ^^^^^^^^---must include actual path
}

请记住,readdir()只返回文件名,不返回路径信息。

您的数组中没有包含完整路径:

while($fname = readdir($dhandleFiles)) {
    $files[] = 'files/' . $fname;
               ^^^^^^^^---must include actual path
}

请记住,readdir()只返回文件名,不返回路径信息。

使用glob函数如何

<?php
define('MYBASEPATH' , 'files/');
foreach (glob(MYBASEPATH . '*.php') as $fname) {
    if($fname != 'list.php' && $fname != 'error.php' && $fname != 'index.php') {
        $files[] = $fname;
    }
}
?>


使用glob函数怎么样

<?php
define('MYBASEPATH' , 'files/');
foreach (glob(MYBASEPATH . '*.php') as $fname) {
    if($fname != 'list.php' && $fname != 'error.php' && $fname != 'index.php') {
        $files[] = $fname;
    }
}
?>


这应该会有帮助-也看看


这应该会有帮助-也来看看


此操作读取并打印子目录中的文件名:

$d = dir("myfiles");
while (false !== ($entry = $d->read())) {
  if ($entry != ".") {
    if ($entry != "..") {
        print"$entry";       
    }
  }
}
$d->close();

这将从子目录读取并打印文件名:

$d = dir("myfiles");
while (false !== ($entry = $d->read())) {
  if ($entry != ".") {
    if ($entry != "..") {
        print"$entry";       
    }
  }
}
$d->close();

与此脚本相关的目录结构是什么?“文件”目录是否与此脚本位于同一文件夹中?正确,文件目录与脚本处于同一级别。与此脚本相关的目录结构是什么?“文件”目录是否与此脚本位于同一文件夹中?正确,文件目录与脚本处于同一级别。