PHP輸入輸出資料流學習筆記_php執行個體

來源:互聯網
上載者:User

PHP輸入和輸出資料流是通過php://來訪問的,它允許訪問 PHP 的輸入輸出資料流、標準輸入輸出和錯誤描述符, 記憶體中、磁碟備份的臨時檔案流以及可以操作其他讀取寫入檔案資源的過濾器。
php://stdin, php://stdout 和 php://stderr
php://stdin,php://stdout 和 php://stderr允許訪問 PHP 進程相應的輸入或者輸出資料流。
php://input
php://input 是個可以訪問請求的未經處理資料的唯讀流。 POST 請求的情況下,最好使用 php://input 來代替 $HTTP_RAW_POST_DATA(原生的post資料),因為它不依賴於特定的 php.ini 指令,記憶體消耗更少。如下例:

<form action="" method="post">  <input type="text" name="test" > <input type="submit" name="" /></form><?php  echo file_get_contents("php://input");?>

結果:

php://output
php://output 是一個唯寫的資料流, 允許你以 print 和 echo 一樣的方式 寫入到輸出緩衝區。
php://fd
php://fd 允許直接存取指定的檔案描述符。 例如 php://fd/3 引用了檔案描述符 3。
php://memory 和 php://temp
php://memory 和 php://temp 是一個類似檔案 封裝器的資料流,允許讀寫臨時資料。 兩者的唯一區別是 php://memory 總是把資料儲存在記憶體中, 而 php://temp 會在記憶體量達到預定義的限制後(預設是 2MB)存入臨時檔案中。 臨時檔案位置的決定和 sys_get_temp_dir() 的方式一致。
php://filter
php://filter 是一種元封裝器, 設計用於資料流開啟時的篩選過濾應用。 這對於一體式(all-in-one)的檔案函數非常有用,類似 readfile()、 file() 和 file_get_contents(), 在資料流內容讀取之前沒有機會應用其他過濾器。參數如下:

如下例:

<?php/* 這會以大寫字母輸出 www.jb51.net 的全部內容 */readfile("php://filter/read=string.toupper/resource=http://www.jb51.net");?>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.