PHP CURL SFTP 读取文件?

PHP CURL SFTP Read File?

我正在尝试弄清楚如何读取文件并通过 php/curl 从远程 SFTP 连接获取内容。我目前有下面的代码来读取目录中的文件列表。

$ch = curl_init('sftp://' . $sftpServer . ':' . $sftpPort . $sftpRemoteDir . '/');
curl_setopt($ch, CURLOPT_USERPWD, '*****:*****');
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_DIRLISTONLY, '1L');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch); 
$error = curl_error($ch);
curl_close($ch);

如果我将 curl_init 更改为下面的行(已添加文件名),我该如何读取该文件?

$ch = curl_init('sftp://' . $sftpServer . ':' . $sftpPort . $sftpRemoteDir . '/filename.txt');

$response 变量将包含文件数据。如果要将文件保存到服务器的计算机上,可以使用 file_put_contents.

写入该文件的内容
$ch = curl_init('sftp://' . $sftpServer . ':' . $sftpPort . $sftpRemoteDir . '/filename.txt');
curl_setopt($ch, CURLOPT_USERPWD, '*****:*****');
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_DIRLISTONLY, '1L');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch); 
$error = curl_error($ch);
curl_close($ch);

file_put_contents("/path/to/save/filename.txt", $response);

如果你想读取明文(可用于文本文件,包括.txts),那么你应该能够简单地读取$response变量,它应该是一个字符串。