簡體   English   中英

使用PHP CURL中的FTP

[英]Using FTP from PHP CURL

我無法弄清楚如何使用CURL的FTP,特別是如何從我的PHP代碼發出FTP命令:

<?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)).'</pre><hr>';
?>

在我上面的例子中,我想獲得bussys的目錄列表,但我獲得了主(FTP根)目錄的列表。

順便說一句,我嘗試了以下組合:

  • LIST bussys/
  • CWD bussys, LIST -a

我搜索了一種改變工作目錄的方法,但找不到任何東西。

最終對我CURLOPT_URL是在CURLOPT_URL包含該文件夾。 另外,單獨的文件夾是不夠的,我不得不包括一個尾隨正斜杠/

所以如果對我bussys/東西對你bussys/ ,那么設置下面的url結構和CURLOPT_FTPLISTONLY可以得到bussys/的內容。

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

我不需要CURLOPT_POSTQUOTE CWD選項來獲取嵌套目錄內容。

如果您想使用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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM