2014-01-16 32 views
0

在PHP中,有沒有辦法將一個「文件」的內容管道化或流式傳輸到另一個文件?管一個文件到另一個

這裏是我現在在做什麼,

$rfp = fopen('php://input', 'r'); 
$wfp = fopen($this->file_path, 'x'); 

while(!feof($rfp)) { 
    fwrite($wfp, fread($rfp, 1048576)); 
} 

fclose($wfp); 
fclose($rfp); 

,工作正常,但似乎可笑其寫入到輸出流之前讀取從輸入流的任意塊。我想如果我可以告訴它從一個地方讀取並直接發送到另一個地方,文件系統或操作系統可以更有效地做到這一點。

在節點中,您可以將一個文件流「流動」到另一個文件流。在PHP中有這個函數嗎?

+0

'EXEC( 「貓file.txt的>> file_copy.txt」);' –

+0

你爲什麼不使用標準的 '複製'功能? (http://pl1.php.net/copy) – ryrysz

+2

你也許能夠找到其他的PHP命令(stream api?)來做基本相同的事情,並且可能沒有像1980年的代碼那麼多,但是我不知道不認爲PHP有​​類似Node的.pipe()。附:我的意思是,不要侮辱你或你的代碼,但對PHP :-)。 –

回答

2

嘗試

copy("php://input", $this->file_path); 

或第二種方法:

$objStream = fopen("php://input", "r"); 
$dest = fopen($this->file_path, 'x'); 
stream_copy_to_stream($objStream , $dest); 
+0

美麗。正是我在找的,謝謝! – mpen

相關問題