1

我目前正在使用以下内容打开文本文件并将其写入本地服务器:

$mypath="sms_file\\cbsms_";
$fp = fopen($file_name.'.txt', "w");
fwrite($fp, $value. "\r\n");
fclose($fp);

我现在想将该文件复制到远程服务器,例如 10.10.18.23(家庭网络)上的 /home/project

假设我在该目录中具有 R/W 访问权限,那么实现此目的的最佳方法是什么?

4

3 回答 3

3

远程服务器需要知道有一个请求进来存储文件。这里有几种可能性,最简单的方法是运行 FTP 服务器。

另一种选择是在命令行上使用exec()函数调用scp(前提是您已经与远程服务器交换了 ssh 密钥)。

另一种选择是在远程服务器上创建一个 PHP 页面,该页面接受带有文件的 POST 请求并存储它们。在这种情况下,您必须提供自己的安全措施。

如果可以将远程主机挂载为永久卷(通过 NFS 或 CIFS),则可以使用常规 PHPcopy()函数。

于 2012-08-02T07:27:52.503 回答
0

从您的示例来看,我会说您的 PHP 服务器在 Windows 上(查看 中的反斜杠$mypath="sms_file\\cbsms_";),而您的远程主机是 UNIX/LINUX(查看正斜杠和 location /home/project)。我建议在远程主机上设置 SSH 或 FTP,而不是使用这些协议而不是将其复制到网络位置。然后,您的 PHP 服务器(Windows 机器)必须通过 SSH/FTP 进行通信并复制文件。

参考资料: http: //php.net/manual/en/book.ftp.php http://php.net/manual/en/function.ssh2-scp-send.php

于 2012-08-02T07:32:11.923 回答
0

您可以尝试使用exec()运行 SCP 命令:

exec('scp /path/to/file.txt user@homenetworkhost:/home/project/file.txt');
// Obviously, you'll have to set up your SSH permissions and for 'user@homenetworkhost' you'll want to change it to your home network's user and host names.
于 2012-08-02T07:28:11.430 回答