Войти

Показать полную графическую версию : Использование opendir в PHP приводит к ошибке


Igor_I
28-01-2006, 17:31
Есть несколько серверов, 2 на Linux, 1 на Windows
Вот именно при подключении к третьей машине - функции opendir, scandir либо dir , все приводят к ошибке.
Но если PHP использовать как язык ActiveScript, то ответ от сервера положительный, и он возвращает название первого каталога.
Как быть? В чем может быть дело?
Также доступ из IE работает отлично.

vadimiron
28-01-2006, 19:17
Вот именно при подключении к третьей машине
То есть скрипт выполняется не на самом серваке???

Igor_I
28-01-2006, 20:00
Нет, скрипт выполняется на моем компьютере. Собственно цель, проиндексировать каталоги на серверах.
Вот еще что, это все делается из-под Windows, несмотря на подпись :)

vadimiron
29-01-2006, 12:10
То есть на своей машине выполняется opendir команда, с помощью которой производится попытка открыть каталоги на другой машине??

Igor_I
29-01-2006, 12:20
Да.

vadimiron
29-01-2006, 12:41
Там какая то история, связанная с fopen wrappers
По сути обращаясь к другому серверу, мы обращаемся к другому URL, поэтому fopen wrappers должен быть для этого активирован
Другие функции тоже имеют такую зависимость от fopen wrappers
Почитай в мануле описание функции scandir

Igor_I
29-01-2006, 14:02
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On

; Define the anonymous ftp password (your email address)
;from="john@doe.com"

; Define the User-Agent string
user_agent="PHP"

; Default timeout for socket based streams (seconds)
default_socket_timeout = 60

auto_detect_line_endings = Off
==========================================
Включены.
$path = "\\\\";
$ip = "10.0.8.2";
echo '<br />4 - '.$path.$ip;
$dir = $path.$ip."\\Video2\\";
echo '<br />8 -'.$dir;
// Открыть заведомо существующий каталог и начать считывать его содержимое
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
print "Файл: $file : тип: " . filetype($dir . $file) . "\n";
}
closedir($dh);
} else {
echo '======';
}
Приводит к такой ошибке
4 - \\10.0.8.2
8 - \\10.0.8.2\Video2\
Warning: opendir(\\10.0.8.2\Video2\) [function.opendir]: failed to open dir: Invalid argument in ***\inc5.php on line 11
======

Igor_I
29-01-2006, 14:14
Тогда как этот код, все тоже самое, за исключением пути
$path = "\\\\";
$ip = "10.0.8.4";
echo '<br />4 - '.$path.$ip;
$dir = $path.$ip."\\Incoming\\Films\\MADONNA (DVD)\\VIDEO_TS\\";
echo '<br />8 - '.$dir.'<br />';
// Открыть заведомо существующий каталог и начать считывать его содержимое
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
print "Файл: $file : тип: " . filetype($dir . $file) . "\n";
}
closedir($dh);
} else {
echo '======';
}
приводит к такому результату
4 - \\10.0.8.4
8 - \\10.0.8.4\Incoming\Films\MADONNA (DVD)\VIDEO_TS\
Файл: . : тип: dir Файл: .. : тип: dir Файл: VIDEO_TS.IFO : тип: file Файл: VIDEO_TS.VOB : тип: file Файл: VIDEO_TS.BUP : тип: file Файл: VTS_01_0.IFO : тип: file Файл: VTS_01_0.VOB : тип: file Файл: VTS_01_1.VOB : тип: file Файл: VTS_01_2.VOB : тип: file Файл: VTS_01_0.BUP : тип: file Файл: VTS_02_0.IFO : тип: file Файл: VTS_02_0.VOB : тип: file Файл: VTS_02_1.VOB : тип: file Файл: VTS_02_2.VOB : тип: file Файл: VTS_02_0.BUP : тип: file Файл: VTS_03_0.IFO : тип: file Файл: VTS_03_0.VOB : тип: file Файл: VTS_03_1.VOB : тип: file Файл: VTS_03_2.VOB : тип: file Файл: VTS_03_0.BUP : тип: file Файл: Default.PLS : тип: file




© OSzone.net 2001-2012