我目前正在使用以下内容打开文本文件并将其写入本地服务器:
$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 访问权限,那么实现此目的的最佳方法是什么?
远程服务器需要知道有一个请求进来存储文件。这里有几种可能性,最简单的方法是运行 FTP 服务器。
另一种选择是在命令行上使用exec()
函数调用scp
(前提是您已经与远程服务器交换了 ssh 密钥)。
另一种选择是在远程服务器上创建一个 PHP 页面,该页面接受带有文件的 POST 请求并存储它们。在这种情况下,您必须提供自己的安全措施。
如果可以将远程主机挂载为永久卷(通过 NFS 或 CIFS),则可以使用常规 PHPcopy()
函数。
从您的示例来看,我会说您的 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
您可以尝试使用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.