ftp_rawlist и пробелы

Catalyst

Новичок
ftp_rawlist и пробелы

Здравствуйте.
Использую функцию ftp_rawlist столкнулся с проблемой: когда в названии папки присутствует пробел(ы) ftp_rawlist выдаёт такой результат:
PHP:
Array
(
    [0] => ftpd: /pub/video0/41/Brideshead: No such file or directory
    [1] => ftpd: 2008/: No such file or directory
    [2] => ftpd: Revisited: No such file or directory
)
папка, содержимое которой функция не может прочитать называется Brideshead Revisited 2008.

Я пошёл по аналогии unix, которые при заходе в пробело-содержащиц папки экранируют их(пробелы), т.е. Brideshead\ Revisited\ 2008.
Но такой метод оказался бесполезным.

Странно, но и google мне не помог. Очень надеюсь на вашу помощь.
 

dimagolov

Новичок
а ты сколько слешей вставлял? их то в php-строках экранировать надо ;)
 

SiMM

Новичок
А нафига юзать обратный слэш вместо обычного?
 

Catalyst

Новичок
Автор оригинала: SiMM
А нафига юзать обратный слэш вместо обычного?
Я руководствовался тем, что если проблема в пробеле в названии папки - значит этот пробел необходимо экранировать, чтобы ftp_rawlist смогла прочитать эту папку.
Но это лишь моё предположение, из-за того что во FreeBSD при заходе в папку, которая содержит пробелы, они(пробелы) экранируются обратным слешом, например:

cd /var/pub/video0/41/Brideshead\ Revisited\ 2008/

т.е. в коде php я сделал так:
PHP:
$dir = str_replace(" ", "\ ", $dir);
$file_lists = ftp_rawlist($link, $dir);
 

Yuriy_S

-=PHP-Club=-
это неправильно, то что ты делаешь, попробуй брать диру в кавычки..
 

Catalyst

Новичок
Автор оригинала: Yuriy_S
это неправильно, то что ты делаешь, попробуй брать диру в кавычки..
Вы имеете в виду так:
PHP:
$dir = str_replace(" ", "' '", $dir);
или так:
PHP:
$dir = str_replace(" ", "\" \"", $dir);
Если я вас правильно понял, то это работать не будет можно и не пробовать.
 

Catalyst

Новичок
Автор оригинала: StUV
или так: $dir = '"' . $dir . '"';
такой вариант тоже не работает
хотя не понимаю как он вообще може работать.

Решение найдено , хотя и обходным путём.

Используется:
PHP:
ftp_chdir($link, $dir);
$file_lists = ftp_rawlist($link, "");
Всё же буду очень признателен тому, кто укажет в чём проблема при использовании ftp_rawlist
 

dimagolov

Новичок
да хотя бы в том, что зашлешить пробел можно например так
PHP:
$dir = str_replace(" ", "\\ ", $dir);
я про это писал в первом посте...
 

nexen

Новичок
данные с сервера читаются с сокета поэтому там могут быть не только пробелы , но и переносы, возвраты каретки , а поэтому нужно их удалять trim($dir); или rtrim($dir);
 
Сверху