当 path 在 PHP 中包含空格时,scandir 或 opendir 不起作用


scandir or opendir does not work when path contains space in PHP

当目录路径中有空间时,以下函数不起作用。例如,在以下路径中,目录名称是包含空格的"堆栈Overflow_files"。

 $dir = '/home/mamun/workspace/barj/barj/barj/Sequence/Stack Overflow_files';
 $scanned_directory =  array_diff(scandir($dir, 0), array('..', '.'))

$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
         $scanned_directory[] = $filename;
}

我可以从运行 ls '$dir' 的终端中找到解决方案。 但是在 PHP 中有什么方法可以获取目录列表吗?

替代解决方案

 $URL = str_replace("' ","%20","../pasta1/pasta com espaco/pasta2");<br>
 $arquivos = scandir($URL);
<br>
 echo $arquiovos[0];<br>
 echo $arquiovos[1];<br>

尝试使用反斜杠转义空格-

$dir = '/home/mamun/workspace/barj/barj/barj/Sequence/Stack' Overflow_files';

尝试 urlencoding。目录路径可能像

         $dir = '/home/mamun/workspace/barj/barj/barj/Sequence/Stack%20Overflow_files';

尝试

$dir = urlencode('/home/mamun/workspace/barj/barj/barj/Sequence/Stack Overflow_files');

兄弟这是最终的解决方案

$path="/var/www/images";
$dir="带空格的文件夹";
$files=scandir("${path}/${dir}");

和宾果游戏