我需要我的服務器下載一個文件並將其寫入服務器的文件系統。問題是我見過的所有PHP示例都將文件下載到服務器RAM中,然後寫入文件。在PHP中,服務器可以直接將文件下載到文件系統嗎?
因爲我正在處理大文件,所以我想讓PHP從其他服務器讀取文件,並立即將其讀取到本地文件中。
我需要我的服務器下載一個文件並將其寫入服務器的文件系統。問題是我見過的所有PHP示例都將文件下載到服務器RAM中,然後寫入文件。在PHP中,服務器可以直接將文件下載到文件系統嗎?
因爲我正在處理大文件,所以我想讓PHP從其他服務器讀取文件,並立即將其讀取到本地文件中。
使用curl
這樣的:
<?php
$url = 'http://www.example.com/a-large-file.zip';
$path = '/path/to/a-large-file.zip';
$fp = fopen($path, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
。我不知道你可以這樣做。 –
@RocketHazmat謝謝,我用它來處理大文件 - 在內存中下載數據會導致服務器性能下降和/或具有不可接受的內存需求 –
好的招數@KamilŠrot – Ben
爲什麼不使用FTP? – jtheman
'file_put_contents('/ path/to/file',file_get_contents('http://example.com/file'));'? –
您尚未共享與您相關的示例,但在本網站上,我們有質量保證材料,顯示如何不使用與總文件大小一樣大的RAM緩衝區。此外,PHP手冊中充滿了有關這方面的功能和示例。我真的很想知道你的方向是什麼。 http://php.net/filesystem – hakre