владелец одного из хостинга заметил, что использование fopen для удаленных соединений - признак дурного тона
открыл соединение - прочел - закрыл и чужому дяде больше не мешаешь. а не "открыл - и занял место пока шнурки не завяжу"
он по другому соединяется, но в первую очередь подумай, не стоит ли скачать файл к себе и дальше уже с ним ковыряться.
Просто мне не всегда нужен сам открываемый файл. У меня есть конструкция, которая трогает скрипт функцией fopen, а потом сразу закрывает. А этот скрипт уже дальше продолжает открывать другие скрипты, но уже через fsockopen
А можно ли через fopen прочитать файл с фтп, при чем несколько килобайт этого файла? Например заголовок mp3 файла, для определения тегов.
Для работы с ftp есть специальные команды. Хотя возможно fopen обучен этому. кстати, ID3v1 находится в конце файла-128 байт. ID3v2 - в начале.
..извиняюсь, дополняю свой предыдущий вопрос Дело в том, что при таком коде: PHP: $FILE_open = fopen("ftp://localhost/Nilsson - Everybody's Talking.mp3", "r"); возвращается такая ошибка: ... failed to open stream: No error in ... Меняем аттрибут на "r+" - failed to open stream: FTP does not support simultaneous read/write connections. В php.ini: Registered PHP Streams: php, file, data, http, ftp, compress.zlib allow_url_fopen - On Может попробывать через ftps или вообще по другому реализовать чтение файла, и может ли это зависить от фтп сервера? ...
А что это за ошибка такая? - failed to open stream: No error ... Ошибка в том, что НЕТ ошибки! ))) Возможо, что это связано с версией PHP 5.2.3 ? ...
ошибка открытия потока данных. "no error" - это описание ошибки отсылаемое сервером. Он послал код, но не послал описание. Через ftp-функции этот файл открывается?
Через ftp-функции файл открывается. Посмотрел лог фтп-сервера, оказывается происходит следующяя вещь. Когда идет обработка fopen с именем файла "ftp://..", фтп сервер сбрасывает ранее созданое соединение, и соединяется уже под anonymous с каким то паролем. Думаю что вся проблема в этом. И...да, чуть позже я все понял, и уже сам ответил на свой вопрос ))) Вместо: PHP: $FILE_open = fopen("ftp://localhost/EARTH, WIND & FIRE - Side By Side.mp3", "r"); надо писать так: PHP: $FILE_open = fopen("ftp://[b]admin:pass[/b]@localhost/EARTH, WIND & FIRE - Side By Side.mp3", "r"); Потому что fopen не использует дескриптор соединения фтп Всем спасибо, что поддерживали