談談PHP的輸入輸出資料流

來源:互聯網
上載者:User

今天有人再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);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.