萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP是怎麼進行輸入輸出的

PHP是怎麼進行輸入輸出的

 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 指令,內存消耗更少。如下例:

<formaction=""method="post">

<inputtype="text"name="test"><inputtype="submit"name=""/>

</form>

<?php

echo file_get_contents("php://input");

?>

結果:

PHP是怎麼進行輸入輸出的 三聯

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

/* 這會以大寫字母輸出http://www.phpcom.cn/ 的全部內容 */

readfile("php://filter/read=string.toupper/resource=http://www.phpcom.cn");

?>

copyright © 萬盛學電腦網 all rights reserved