PHP php://


簡介

php:// 包裝器允許訪問各種 I/O 流。這包括標準輸入、輸出和錯誤流。記憶體中、磁碟支援和過濾流也可以使用 php:// 協議訪問。

標準流

php://stdinphp://stdoutphp://stderr 分別允許直接訪問 PHP 程序的標準輸入流裝置、標準輸出流和錯誤流。預定義常量 STDINSTDOUTSTDERR 分別表示這些流。

php://input

php://input 允許只讀訪問 HTTP 請求正文中包含的原始資料。請注意,相同的資料也可在 $HTTP_POST_RAW-DATA 變數中獲得(該變數現已棄用)。但是,如果 enctype 屬性設定為 multipart/form-data,則 php://input 不可使用。

php://output

此包裝器表示只寫流,允許緩衝機制,類似於 printecho 語句。

php://fd

可以透過此包裝器訪問檔案描述符。標準流 STDIN、STDOUT 和 STDERR 分別分配了檔案描述符 1、2 和 3。每個其他流都分配了遞增的檔案描述符。因此,php://fd/5 指的是檔案描述符 5。

php://memory

這是一個讀寫流,允許將資料臨時儲存在記憶體中。php://temp 包裝器與此類似。但是,在後者的情況下,資料儲存在臨時檔案中而不是記憶體中。

php://filter

此包裝器允許在開啟流時對其應用過濾器。過濾器在使用 readfile()、file_get_contents() 和 file() 函式時特別有用。

示例

在以下示例中,控制檯輸入從 php://stdin 讀取,並使用 php://stdout 顯示輸出。

<?php
$file=fopen("php://stdin","r");
$x=fread($file,10);
echo $x;
$out=fopen("php://stdout","w");
fwrite($out, $x);
fclose($file);
?>

php://input 流包裝器允許從 HTTP 請求中獲取原始資料。在以下示例中,HTML 表單使用 POST 方法將資料釋出到 PHP 指令碼。

<html>
<body>
<form action="testscript.php" method="POST">
   <input type="text" name="name">
   <input type="text" name="age">
   <input type ="submit" value="submit">
</form>
</body>
</html>

用於檢索原始 HTTP 資料的 PHP 指令碼如下所示:

<?php
$json = file_get_contents("php://input");
$data = json_decode($json);
print_r($json);
?>

更新於:2020-09-22

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.