0
我需要在PHP中創建自定義FTP封裝的幫助。PHP。從FTP下載流或自定義FTP封裝
我用
$h=fopen('ftp://....');
但是,這並不適用於所有的FTP服務器(有時主動/被動模式的問題)很好地工作,我不能與包裝物進行控制。
我使用的功能從http://php.net/manual/en/book.ftp.php和所有正常工作。我只有使用PHP FTP包裝下載時遇到問題。
我需要使用包裝,因爲我不想將下載的文件存儲到磁盤。我從流中讀取文件的一部分,然後輸出到用戶瀏覽器。
所以我想在PHP中創建自定義FTP包裝。最重要的是,如果它基於那裏的功能http://php.net/manual/en/book.ftp.php。
我看到比如有http://php.net/manual/en/function.ftp-fget.php
function ftp_get_contents ($conn_id, $filename,
//Create temp handler:
$tempHandle = fopen('php://temp', 'r+');
//Get file from FTP assuming that it exists:
ftp_fget($conn_id, $tempHandle, $filename, FTP_ASCII, 0));
//Getting detailed stats to check filesize:
$fstats = fstat($tempHandle);
return fread($tempHandle, $fstats['size']);
}
但由於其保存完整的文件到硬盤,只有在此之後,我可以從本地文件讀取,這是不好的。
你知道這樣的事情,但允許我從FTP服務器讀取部分文件而無需在本地緩存完整文件?
謝謝。
不要使用php。 PHP已經吃足夠的內存了。使用你通過php調用的一些命令行腳本。 –
你的意思是使用http://php.net/manual/en/function.popen.php並創建一些命令行工具從FTP讀取文件並打印輸出? –
是的。使用正確的工具來完成這項工作!錘子的指甲。螺絲刀螺絲。漂亮的主頁的PHP。 :) –