@mikle54

Квадратные скобки в путях при работе по FTP через PHP?

Необходимо получить список файлов директории. Использую:
$conn_id = ftp_connect('ftp-serv');
$login_result = ftp_login($conn_id, 'login', 'pass');
$buff = ftp_rawlist($conn_id,$path);
print_r($buff);
ftp_close($conn_id);
(php 5.3.3)
Работает, только при отсутствии в пути квадратных скобок ([]). При их наличии в $path (например 'home/['), ftp_rawlist($conn_id,$path) пустой массив (независимо от того, существует ли директория), а не список файлов или ошибку. Подскажите, как эти символы экранировать, или, что нужно сделать для корректной работы?
  • Вопрос задан
  • 2444 просмотра
Решения вопроса 1
@TsSaltan
мб поможет экранизация?
urlencode('[');

Update

Тогда curl должен помочь:
$login = '';
$pass = '';
$server = 'ftp.com';
$ch = curl_init('ftp://'.$login.':'.$pass.'@'.$server.'/dir[/');
curl_setopt($ch, CURLOPT_FTPLISTONLY, true); //Вернёт список директорий
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$dirs = curl_exec($ch);
var_dump(explode(PHP_EOL,$dirs));


Проверил - отлично работает
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Переименуйте директории, либо создайте симлинки с нормальными путями.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы