我有一个与file_exists()
and相关的奇怪问题glob()
。后者列出了这个特定目录中的所有文件没问题,但是如果我遍历文件路径并调用file_exists()
它们,它会返回 false。
我的第一反应是这是权限问题,但我已经跑了
sudo chmod -R 766 ./directoryName
这样 PHP 将至少具有读取权限。还是没有区别。
我在这里阅读了其他几个问题,提到安全模式可能是一个问题,但我已经验证我的 PHP ( PHP Version 5.3.5-1ubuntu7.10
) 没有在安全模式下运行。
这是我ls -la
在相关目录中的输出...
drwxrw-rw- 6 user user 4096 2012-08-04 16:15 .
drwxr-xr-x 6 user user 4096 2012-08-04 12:42 ..
-rwxrw-rw- 1 user user 141 2012-07-25 20:43 AppCache.php
-rwxrw-rw- 1 user user 1982 2012-08-04 10:54 AppKernel.php
-rwxrw-rw- 1 user user 474 2012-07-25 20:43 autoload.php
-rwxrw-rw- 1 www-data user 47590 2012-08-06 20:01 bootstrap.php.cache
drwxrwxrw-+ 3 user user 4096 2012-08-06 20:24 cache
-rwxrw-rw- 1 user user 1643 2012-08-06 20:01 check.php
drwxrw-rw- 2 user user 4096 2012-08-04 12:41 config
-rwxrw-rw- 1 user user 794 2012-07-25 20:43 console
-rwxrw-rw- 1 user user 13 2012-07-25 20:43 .htaccess
drwxrwxrw-+ 2 user user 4096 2012-08-06 20:25 logs
-rwxrw-rw- 1 user user 1327 2012-07-25 20:43 phpunit.xml.dist
drwxrw-rw- 3 user user 4096 2012-08-04 12:41 Resources
-rwxrw-rw- 1 user user 24240 2012-08-06 20:01 SymfonyRequirements.php
-rwxrw-rw- 1 user user 727 2012-07-25 20:43 upgrade.php
在我的索引脚本中,我正在做以下作为一个非常基本的测试......
$files = glob('/path/to/directory/*.cache');
foreach($files as $file) {
echo $file . ':';
var_dump(file_exists($file));
echo '<br>';
}
输出以下...
/path/to/directory/bootstrap.php.cache:
boolean false
如果我创建一个脚本并从命令行运行它,file_exists()
调用true
会按预期返回。