хм, я в смятении.
проверил такой код:
<? if (file_exists("\\\\counter\\mail\\mail.txt")) { echo "Exists<BR>"; } else { echo "Does not Exist<BR>"; } ?>
в виндус, на денвере, - работает.
на фряхе нивкакую.
настройки php.ini идентичны - allow_url_fopen=on.
ладно, всеравно собрался переходить на bsd6.1 , так что буду все переставлять - может после этого заработает...
если бы файлы лежали на http:// то с сокетами нет никаких проблем, даж если на фтп - то к ним можно подобраться, но документации по smb майкрософт, по-моему, еще не выпустили.
Долго порывшись в форумах и документах нашел кучу примеров где работает $ff=fopen("http://realurl/realfile.ext","r") , но у меня, даже если ссылка на собственный сайт, fopen() все равно выдает false. Подозреваю что надо что-то дополнительное включать при компиляции php или в php.ini для доступа к не локальной файловой системе.
$fp = fsockopen($path, $port, $errno, $errstr, $timeout = 30); if(!$fp){ echo "$errstr ($errno)\n"; //Либо ошибка, либо коннект не удался (файла нет) }
переменная $path , на сколько я понял, должна содержать адрес хоста, а не путь к файлу , а как после коннекта добраться до файла?
что я только не пробовал: и ftp:// и smb:// и file:// и просто //hostname/...
не выходит. может при конфигурировании надо указывать чтонить для доступа на удаленные хосты или в php.ini.
вот мои опции:
'./configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-mod_charset' '--with-curlwrapper' '--enable-ftp' '--prefix=/usr/local/php'
а с сокетами что-то очень сложно получается, да и смб-протокола я не знаю...😕
сервер стоит на FreeBSD6.0 (Apache/2.0.55 (Unix) PHP/5.1.2 ).
до этого стоял PHP4 и file_exists() успешно проверял файлы на SMB, а с ФТП не справлялся. спасибо за быстрый ответ - ща попробую сделать с сокетами=).