PHP入出力フロー学習ノート
PHP入力と出力ストリームは、PHPの入出力ストリーム、標準入出力とエラー記述子、メモリ、ディスクバックアップの一時ファイルストリーム、その他のファイルリソースの読み込みが可能なフィルタにアクセスできます。
php://stdinを選択します。php://stdout 和php://stderr
php://stdinを選択しますphp://stdout 和php://stderrPHPプロセスに対応する入出力フローへのアクセスを許可します。
php://input
php://input は、要求にアクセスできる元のデータの読み取り専用ストリームです。POST要請の場合は、使用したほうがいいです。php://input 代わりにHTTP_RAW_POST_データは、特定のphp.iniコマンドに依存しないため、メモリの消費が少ない。以下の例:
結果:
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 メモリ量が予め定義された制限に達した後(デフォルトは2 MB)に一時ファイルに保存されます。仮ファイル位置の決定とsys_ゲットするtemp_dir()の方式は一致します。
php://filter
php://filter は、データストリームが開いている時のフィルタリング応用のためのメタパッケージです。これは一体型のファイル関数にとって非常に有用であり、readfile()とfile()とfile_のようなものである。ゲットするcontensts()は、データストリームのコンテンツを読み込む前に他のフィルタを適用する機会がなかった。パラメータは以下の通りです
以下の例:
php://stdinを選択します。php://stdout 和php://stderr
php://stdinを選択しますphp://stdout 和php://stderrPHPプロセスに対応する入出力フローへのアクセスを許可します。
php://input
php://input は、要求にアクセスできる元のデータの読み取り専用ストリームです。POST要請の場合は、使用したほうがいいです。php://input 代わりにHTTP_RAW_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 メモリ量が予め定義された制限に達した後(デフォルトは2 MB)に一時ファイルに保存されます。仮ファイル位置の決定とsys_ゲットするtemp_dir()の方式は一致します。
php://filter
php://filter は、データストリームが開いている時のフィルタリング応用のためのメタパッケージです。これは一体型のファイル関数にとって非常に有用であり、readfile()とfile()とfile_のようなものである。ゲットするcontensts()は、データストリームのコンテンツを読み込む前に他のフィルタを適用する機会がなかった。パラメータは以下の通りです
以下の例:
<?php
/* www.jb51.net */
readfile("php://filter/read=string.toupper/resource=https://www.jb51.net");
?>