今天有人再PHPCHINA問我關於PHP傳XML怎麼做? ,再上面已經給了對應的解決方法。順便談談PHP的輸入輸出流。
今天暑假在公司的時候,剛好同事使用flash打造串流媒體的時候,需要使用PHP讀取FLASH傳遞過來的媒體訊息(也是XML格式),在那個時候我也熟悉了PHP的基本輸入輸出流原理。
手冊上寫道:
PHP 3.0.13 以上版本,自 PHP 4.3.0 起支援 php://output 及 php://input,自 PHP 5.0.0 起支援 php://filter。
php://stdin
php://stdout
php://stderr
php://output
php://input
php://filter
php://stdin,php://stdout 和 php://stderr 允許存取 PHP 進程對應的輸入或輸出流。
php://output 允許寫入輸出緩衝機制數據,和 print() 與 echo() 的方式相同。
php://input 允許讀取 POST 的原始資料。和 $HTTP_RAW_POST_DATA 比起來,它給記憶體帶來的壓力較小,並且不需要任何特殊的 php.ini 設定。 php://input 不能用於 enctype="multipart/form-data"。
php://stdin 和 php://input 是唯讀的,同時 php://stdout,php://stderr 和 php://output 是只寫的。
php://filter 是一種設計用來允許過濾器程式在開啟時成為流的封裝協定。這對於單獨具有完整功能的檔案函數例如 readfile(),file() 和 file_get_contents() 很有用,否則就沒有機會在讀取內容之前將過濾器應用於串流之上。
也就是說post的原始資料是保存在一個叫php://input的檔案。你可以透過簡單的檔案操作讀取裡面的資料來控制。
$data=file_get_contents(php://input);
以上就介紹了http://www.hunanzhibo.com/ 談PHP的輸入輸出流,包括了http://www.hunanzhibo.com/方面的內容,希望對PHP教學有興趣的朋友有幫助。