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