使用cURL连接到SFTP服务器

时间:2017-10-26 17:18:05

标签: php curl sftp

我正在尝试从SFTP服务器获取.csv文件,然后将其保存在本地。我正在使用以下代码但它似乎没有工作。

<?php

$user = 'username';
$pass = 'password';
$host = 'order.domain.com';
$file = 'filename.csv';

$remote = "sftp://$user:$pass@$host/$file";
$local = getcwd() . '/' . $file;

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $remote);
curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($curl, CURLOPT_USERPWD, "$user:$pass");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
file_put_contents($local, curl_exec($curl));
curl_close($curl);

?>

它似乎是在当前工作目录中创建filename.csv文件,但它是空白的。

看起来卷曲可能没有连接到远程服务器?也许卷曲不是为SFTP设置的?

1 个答案:

答案 0 :(得分:2)

来自the documentation

  

目前支持http,https,ftp,gopher,telnet,dict,file和ldap协议

请注意,尽管名称相似,但SFTP和FTP的非常不同。

如果你想要SFTP,那么你需要使用一个专门用它来工作的工具。请参阅this question