PHP scandir没有抛出任何错误,但没有列出目录内容


php scandir not throwing any errors but is not listing dir contents

我正在尝试遵循这里列出的php文档上的代码http://php.net/manual/en/function.scandir.php

然而,当我运行代码时,什么也没有显示。谁能告诉我哪里写错了吗?

我的代码
<?php
$directory = "/xyz/images/";
$images = glob($directory . "*.jpg");
foreach($images as $image)
{
  echo $image;
}
error_reporting(E_ALL);
?>

没有显示任何内容。我在windows上使用xampp。我也参考了这些问题使用PHP列出目录中的所有图像

获取目录

中的图像文件名

我也尝试过"c:/xampp/htdocs/xyz/images/", "/xyz/images/", "xyz/images/", "/images/"作为我的目录。

<?php
error_reporting(E_ALL);
$directory = scandir("linewalk');
$images = glob($directory . "*.jpg");
foreach($images as $image)
{
  echo $image;
}
?>

现在抛出错误解析错误:语法错误,unexpected '。'


<?php
error_reporting(E_ALL);
foreach (scandir(".") as $file)
echo $file . "'n";
?>

******感谢您的帮助和建议*********工作并列出当前目录的内容我目前在根/xyz/test所以scan/xyz/images应该是
(scandir("qa/linewalk")警告:scandir(qa/linewalk,qa/linewalk):系统无法找到指定的路径-当我尝试

时得到的结果

您应该将您的目录转换为文件系统路径:

$directory = dirname(__FILE__) . "/xyz/images/";

也可以使用RecursiveDirectoryIterator

$dirIterator = new RecursiveDirectoryIterator($directory);
$iterator = new RecursiveIteratorIterator($dirIterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file) {
    print_r($file);
}

Line

$directory = "/xyz/images/";

表示您从服务器(计算机)根目录下的xyz文件夹中获取文件。我猜没有这样的文件夹,而你没有权限来访问它。

所以,你应该更小心地设置你的路径,例如:

// path comes from yor server docroot
$directory = $SERVER['DOCUMENT_ROOT'] . "/xyz/images/";
// path comes from current folder in which your script is run
$directory = "./xyz/images/";

路径相对于php文件的位置。

因此,如果php文件和xyz目录位于同一父目录,则只需使用

$directory=scandir(xyz/images/);