Scandir() с getParameter Symfony 2
Я использую Wampserver2.2, Symfony 2.5 и Php 5.3.13, и я создаю файловый менеджер.
Для сканирования моего каталога я на самом деле делаю это в моей showAction() в моем DefaultController:
И это прекрасно работает!
$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);
вернуть логическое значение ЛОЖЬ
Предупреждение: scandir(\\ имя_сервера \Dossiers Projet\Path\to\Directory) [function.scandir]: не удалось открыть каталог: нет такого файла или каталога в
Я не знаю, в чем проблема.. Большое спасибо!
1 ответ
scandir()
(а также opendir()
а также) функция возвращает FALSE при ошибке - если каталог не является ресурсом каталога, то возвращается логическое FALSE. Проблема вызвана тем фактом, что служба Apache в Windows имеет ограниченный доступ к сетевым ресурсам, таким как общие ресурсы и каналы, потому что она не имеет учетных данных и должна подключаться с использованием нулевого сеанса - поэтому \\\\servername\Dossier Projets\Path\to\Directory
путь не является допустимым ресурсом каталога для PHP, обрабатываемого службой Apache.
Вы можете установить NullSessionPipes
а также NullSessionShares
значения, которые используются для указания каналов и общих ресурсов, к которым нулевые сеансы могут подключаться в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
ключ реестра, или вы можете добавить значение REG_DWORD RestrictNullSessAccess=0
к этому ключу, чтобы разрешить всем пустым сеансам доступ ко всем каналам и общим ресурсам, созданным на этом компьютере (но, конечно, учитывайте риски).