PHP is_dir () возвращает false на сетевом диске Windows

У меня есть сетевой диск, сопоставленный с буквой X: \, идущей на внешний жесткий диск с контуром «\\ X-Drive \ Public \ Data».

Я использую Zend Server с Apache.

Моя команда PHP проста

$isFolder = is_dir("x:/"); echo($isFolder); //FALSE 

Вещи, которые вы должны знать:

Код:

 $isFolder = is_dir("c:/"); echo($isFolder); //TRUE 

работает, как ожидалось.

Я использую службу Zend Apache как пользователь-администратор. Я знаю, что это работает правильно, потому что в диспетчере задач процесс httpd.exe показывает правильного пользователя.

Привод действительно отображен. Я попытался сопоставить его с несколькими пользователями, чтобы включить того же пользователя, который Zend Apache использует безрезультатно.

Я прочитал каждый пост по этому вопросу, который мог найти. Каждая проблема, с которой я столкнулась, существует либо из-за прав пользователя, либо из-за опечатки. Я не вижу, как моя проблема попадает в любую категорию.

Я также пробовал:

 system('net use X: "\\x-drive\public" password1 /user:username /persistent:no'); $isFolder(is_dir("x:/")); echo($isFolder); //FALSE 

Я запускаю Windows Vista x64, и производственный код будет работать в Windows 7 x64.

С какими еще проблемами я могу работать?

Для общих сетевых ресурсов следует использовать имена UNC: "//server/share/dir/file.ext" Источник

Если вы используете IP-адрес или имя хоста, он должен работать нормально:

 $isFolder = is_dir("\\\\NAS\\Main Disk"); var_dump($isFolder); //TRUE $isFolder = is_dir("//NAS/Main Disk"); var_dump($isFolder); //TRUE $isFolder = is_dir("N:/Main Disk"); var_dump($isFolder); //FALSE