我目前開寫一個文本文件到我的本地服務器執行以下操作:如何打開和PHP
$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訪問權限,那麼實現此目的的最佳方式是什麼?
我目前開寫一個文本文件到我的本地服務器執行以下操作:如何打開和PHP
$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),則可以使用常規PHP copy()
函數。
您可以嘗試使用exec()
運行SCP命令:
exec('scp /path/to/file.txt [email protected]:/home/project/file.txt');
// Obviously, you'll have to set up your SSH permissions and for '[email protected]' you'll want to change it to your home network's user and host names.
通過您的exmample的長相,我會說你的PHP服務器是Windows(看着$mypath="sms_file\\cbsms_";
反斜線)和遠程主機是UNIX/LINUX(查看正斜槓和位置/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
怎麼樣?FTP – 2012-08-02 07:26:01
其實並不適合。 – Mofizur 2012-08-05 04:28:26
在你的問題中沒有什麼說明爲什麼這會是 - 哦 – 2012-08-05 05:01:26