在PHP中为cURL/FTP编写包装类。当我使用特定的cURL选项获取或放置文件等标准操作时,cURL不会将FTP目录索引作为默认响应返回。cURL FTP自定义命令:运行不返回目录索引?
但是:当我运行自定义FTP与CURLOPT_CUSTOMREQUEST
,CURLOPT_QUOTE
或CURLOPT_POSTQUOTE
命令,例如DELE
或RNFR|RNTO
,FTP服务器返回目录索引除了运行命令的默认响应。 (如果命令成功)
这是预期的行为,因为CURLOPT_URL
也被传入,没有上传/下载索引就是你得到的。 (并且我无法使用CURLOPT_URL
连接到服务器W/O,或者我可以吗?)但我真的不在乎浪费带宽/ RAM来接收我运行的每个命令的索引。大型目录或大量单个命令会出现问题。
当然,我可以通过将所有操作集成到一个单一的curl_exec()
调用中来最大限度地减少浪费。我可以通过添加一个CURLOPT_FTPLISTONLY
来最小化响应,但这仍然是一个不必要的数据被返回的负载。或者我可以附加一个失败的命令,非常黑客,并且只给我一个失败结果,尽管cmd已经完成。或者我终于可以将CWD放入一个我知道是空白的目录吧? {^_^}
然后:有没有办法告诉cURL不要打扰返回目录索引?为cURL实现请求池使用该类的其他代码中的不同时间/位置进入的FTP调用也会阻止我实时返回单独的成功/失败响应。