Scandir() 与 getParameter Symfony 2

Scandir() with getParameter Symfony 2

我正在使用 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); return string '\\servername\Dossier Projets\Path\to\Directory'

var_dump($clients); return 布尔值 FALSE

警告:scandir(\\servername\Dossiers Projet\Path\to\Directory) [function.scandir]:无法打开目录:

中没有这样的文件或目录

我不知道有什么问题.. 非常感谢!

scandir()(以及 opendir())函数 returns 失败时为 FALSE - 如果目录不是目录资源,则返回布尔值 FALSE。 问题是由于 Windows 上的 Apache 服务对网络资源(例如共享和管道)的访问权限有限,因为它没有凭据并且必须使用空会话进行连接 - 所以 \\servername\Dossier Projets\Path\to\Directory路径不是 Apache 服务处理的 PHP 的有效目录资源。

您可以在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 注册表项中设置 NullSessionPipesNullSessionShares 值,这些值用于指定空会话可以连接到的管道和共享,或者您可以将 REG_DWORD 值 RestrictNullSessAccess=0 添加到该键以允许所有空会话访问该机器上创建的所有管道和共享(当然要考虑风险)。