использование символа @ с потоком ftp в DirectoryIterator - PullRequest
1 голос
/ 02 июня 2011

Я использую класс DirectoryIterator для отображения содержимого ftp: $ a = новый DirectoryIterator ('ftp: // пользователь: пароль @ хост');

Если в логине присутствует символ "@", я получаю сообщение об ошибке: не удалось открыть каталог: операция не удалась

Как мне избежать @ символа в логине?

Я пытаюсь: % 40, + \ @

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

RFC1738 указывает, что специальные символы, такие как @, должны быть закодированы в схеме ftp: //.Поэтому правильное использование %40 вместо @ в пароле.

Но вы просто хотели использовать префикс user:password@ перед именем хоста.Этим не нужно убегать.И он уже изначально поддерживается оболочкой ftp fopen url:

$d = opendir("ftp://anonymous:nopwd@ftp.kernel.org/pub/");
print readdir($d);

Выше ftp: // url также работает для меня с DirectoryIterator, но дает некоторые неясные предупреждения и другие результаты,Поэтому сначала я протестировал бы с нативными функциями.

1 голос
/ 02 июня 2011

Я не уверен, что вы можете использовать DirectoryIterator в качестве FTP клиента

Возможно, вы захотите узнать, как использовать ftp_rawlist , чтобы получить список из данного каталога

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...