2017-10-26 9 views
0

SFTPサーバーから.csvファイルを取得してローカルに保存しようとしています。私は次のコードを使用していますが、動作していないようです。cURLを使用してSFTPサーバーに接続する

<?php 

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

$remote = "sftp://$user:[email protected]$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ファイルを作成しているようです。

curlがリモートサーバーに接続していない可能性がありますか?多分、SFTP用にカールは設定されていませんか? the documentationから

+0

私たちに教えてください[curl log](https://stackoverflow.com/q/3757071/850848)。 –

答えて

2

は現在、SFTPとFTPは似たような名前にもかかわらず、であることをHTTP、HTTPS、FTP、Gopherのは、telnet、辞書、ファイル、およびLDAPプロトコル

注意をサポートしています、非常に異なっています。

SFTPが必要な場合は、SFTPを使用するように設計されたツールを使用する必要があります。 this questionを参照してください。

+0

私はすでにPHP用のSSH2拡張を使用しようとしましたが、動作させることができませんでした。数時間後には、他の2つのPHPライブラリがインストールされていることがわかりました。それらのライブラリを調べると、それらのライブラリを使用する方法についての指示は一切ありませんでした。 カールが有効なので私のphp.iniを実行する必要がある作曲家が必要なので、私はすでにphpseclを調べていました。 –

+0

また、私が読んだことから、cURLはSSHファイル転送プロトコル(SFTP)をサポートしています。私はスタックオーバーフローや他のいくつかのブログで数多くの例を見つけましたが、個人的に働かせることはできませんでした。 –

関連する問題