Использование FTP из PHP CURL - PullRequest
6 голосов
/ 19 апреля 2010

Я не могу понять, как использовать FTP CURL, в частности, как выдавать команды FTP из моего кода PHP:

<code><?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'ftp://ftp.microsoft.com/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch,CURLOPT_POSTQUOTE,array('CWD bussys/','LIST')); /* ?!! */

    echo '<hr><pre>'.htmlspecialchars(curl_exec($ch)).'

'; ?>

В моем примере выше я хочу получить список каталогов bussys, но вместо этого я получаю список основного (корневого FTP) каталога.

Кстати, я пробовал следующие комбинации:

  • LIST bussys/
  • CWD bussys, LIST -a

Ответы [ 2 ]

5 голосов
/ 01 июня 2013

Я также искал способ изменить рабочий каталог, но ничего не смог найти.

В конечном итоге у меня получилось включить папку в CURLOPT_URL. Кроме того, одной папки было недостаточно, мне пришлось включить косую черту /.

Итак, если то, что сработало для меня, сработает для вас, тогда установка следующей структуры URL и CURLOPT_FTPLISTONLY должна получить вам содержимое bussys/.

curl_setopt($ch, CURLOPT_URL, 'ftp://ftp.microsoft.com/bussys/'); curl_setopt($ch, CURLOPT_FTPLISTONLY, TRUE);

И мне не понадобился параметр CURLOPT_POSTQUOTE CWD для получения содержимого вложенных каталогов.

0 голосов
/ 19 марта 2013

Если вы хотите работать с curl, используйте опции CURLOPT_CUSTOMREQUEST.

См. Пример кода ниже.

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "ftp://192.168.0.129");
curl_setopt($curl, CURLOPT_USERPWD, "sru:sru");
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'CWD /a'); // change directory
curl_exec($curl);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'MLSD'); // get directory list
$ftp_result=curl_exec($curl);
echo $ftp_result;

Возвращает

type=dir;modify=20130319024302; test

test - это подкаталог a.

Я думаю, вам лучше использовать ftp_connect.

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