我正在使用Wampserver2.2,Symfony 2.5和Php 5.3.13,我创建了一个文件浏览器。
要扫描我的目录,我实际在我的DefaultController中的showAction()中执行:
它很棒!
$dir = \\\\servername\Dossiers Projet\Path\to\Directory
$clients = scandir($dir);
我想在 config.yml :
中参数路径目录parameters:
chemin_clients: \\\\servername\Dossier Projets\Path\to\Directory
我也测试过:
parameters:
chemin_clients: '\\\\servername\Dossier Projets\Path\to\Directory'
新的showAction():
$dir = $this->container->getParameter('chemin_clients');
$clients = scandir($dir);
var_dump($clients);
var_dump($dir);
返回string '\\\\servername\Dossier Projets\Path\to\Directory'
var_dump($clients);
返回布尔值FALSE
警告:scandir(\\ servername \ Dossiers Projet \ Path \ to \ Directory)[function.scandir]:无法打开目录:
中没有此类文件或目录我不知道问题是什么.. 非常感谢!
答案 0 :(得分:0)
scandir()
(以及opendir()
)函数在失败时返回FALSE - 如果directory不是目录资源,则返回boolean FALSE。
问题是由于Windows上的Apache服务对网络资源(例如共享和管道)的访问权限有限,因为它没有凭据并且必须使用空会话进行连接 - 因此\\\\servername\Dossier Projets\Path\to\Directory
路径不是由Apache服务处理的PHP的有效目录资源。
您可以设置NullSessionPipes
和NullSessionShares
值,这些值用于指定空会话可以在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
注册表项中连接的管道和共享,或者您可以添加REG_DWORD值RestrictNullSessAccess=0
到该键,允许所有空会话访问在该机器上创建的所有管道和共享(当然,考虑风险)。