Как уже упоминалось много раз, это декларация. Это способ обратной совместимости. Одна из многих областей C ++, которая является тупой / непоследовательной / болезненной / фиктивной из-за ее наследия.
HTTP работает немного по-другому, чем FTP хотя, к сожалению. Хотя оба могут выглядеть одинаково в Вашем браузере, HTTP отделывается от основания URI (т.е. к ресурсу доступа A, у Вас есть идентификатор, который говорит Вам, как получить доступ к этому).
FTP является очень старым школьным управляемым сервером. Даже анонимный FTP является определенным взломом, так как Вы все еще предоставляете имя пользователя и пароль, это просто определяется как "анонимное" и Ваш адрес электронной почты.
Проверка, является ли FTP-сервер проверкой средств
То, что можно соединиться с FTP-сервером
if (!($ftpfd = ftp_connect($hostname))) { ... }
То, что можно войти в сервер:
if (!ftp_login($ftpfd, $username, $password)) { ... }
Затем если там далее лежат в основе ресурсов, к которым необходимо получить доступ, чтобы протестировать, произошел ли конкретный сайт, затем используйте appropiate операцию на них. например, на файле, возможно, используйте ftp_mdtm()
для получения в прошлый измененный раз или на каталоге посмотрите если ftp_nlist()
работы.
Разве не было бы более просто использовать встроенный FTP PHP* функциональность, чем попытка к самокрутке? Если бы URI прибывает из источника вне Вашего управления, необходимо было бы проверить protocal определение (http:// или ftp://, и т.д.) для определения, какую функциональность использовать, но это довольно тривиально. Если существует теперь protocal указано (там, действительно должен быть!) затем Вы могли попытаться принять значение по умолчанию к http.
Если Вы хотите считать определенные ответы, необходимо будет открыть сокет и данные чтения-записи вручную.
<?php
$sock = fsockopen($hostname, $port);
?>
Затем Вы будете иметь к fput/fread данным назад и вперед.
Это потребует, чтобы Вы читали на протоколе FTP.