[英]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.