2

我遇到了 phpglob函数的一个特性,想知道到底发生了什么。

<?php
$paths = glob('../test/*');
echo 'count = ' . count($paths) .'<br/>';
echo 'paths[0] = ' . $paths[0] .'<br/>';
echo 'scandir count = ' . count (scandir ('../test') );
?>

测试目录是空的,我得到了结果

count = 1
paths[0] = 
scandir count = 2

我理解 2的scandir计数(.并且..也被计算在内)。
但我希望计数为$paths0,而不是 1。
为什么,如果它是 1,$paths[0]没有价值?

4

1 回答 1

3

发生的事情是“glob”返回了错误。这给出了您所看到的输出。

count = 1
paths[0] = 

阅读一份报告 ( http://drupal.org/node/1157100 ) 表明glob()如果您无法阅读../父目录,即使您可以阅读,也可能会失败../test。我认为scandir()没有这个限制,所以它成功了。

这种情况下的解决方案:也授予自己对 ../ 目录的权限。

于 2012-08-26T11:47:40.300 回答