ホームページ  >  記事  >  バックエンド開発  >  phpプロトコルの詳しい説明

phpプロトコルの詳しい説明

php中世界最好的语言
php中世界最好的语言オリジナル
2017-12-20 19:26:463942ブラウズ

今日の WEB プログラム開発技術には多くの議論があることは承知していますが、今後 WEB 技術がどのように発展しても、WEB プログラムの品質検査のための基本的な通信プロトコルは非常に重要です。 今日は WEB アプリケーションの内部の仕組みについて紹介します。

PHP には、fopen()、copy()、file_exists()、filesize() などの ファイル システム 関数で使用できる、多くの組み込み URL スタイル ラッパー プロトコルが付属しています。 これらのパッケージング プロトコルに加えて、stream_wrapper_register() を介してカスタム パッケージング プロトコルを登録することもできます。

注: カプセル化されたプロトコルを記述するために使用される URL 構文は、scheme://... 構文のみをサポートします。スキーム:/ およびスキーム: 構文はサポートされていません。

phpプロトコルタイプ

file:// — ローカルファイルシステムにアクセスします

http:// — HTTP URLにアクセスします

ftp:// — FTP URLにアクセスします

php:// — 個々の入出力ストリーム (I/O ストリーム) へのアクセス

zlib:// — 圧縮ストリーム

data:// — データ (RFC 2397)

glob:// — 一致するファイル パス パターンの検索

phar :// — PHP アーカイブ

ssh2:// — Secure Shell 2

rar:// — RAR

ogg:// — オーディオ ストリーミング

expect:// — インタラクティブ ストリーミングの処理

PHP。 ini

allow_url_fopen: on デフォルトでは、このオプションをオンにすると、fopen カプセル化プロトコルが URL 形式でアクティブになり、URL オブジェクト ファイルなどへのアクセスが許可されます。

allow_url_include: off はデフォルトでオフになっています。このオプションがオンの場合、URL オブジェクト ファイルなどの組み込みが許可されます。

file:// プロトコル

file:// - ローカル ファイル システムにアクセスします。影響を受けません。 allow_url_fopen およびallow_url_include による


Usage

file:// [ファイルの絶対パスとファイル名]

   
http://127.0.0.1/code/1.php?file=file:///E:\phpStudy\WWW\code\phpinfo.php



php://protocol

php:// — 各入力にアクセスします/output ストリーム (I/O ストリーム)

allow_url_fopen を有効にする必要はありません。allow_url_include を有効にする必要があるのは、php://input、php://stdin、php://memory、php://temp のみです。

php://stdin、php://stdout、php://stderr

php://stdin、php://stdout、php://stderr では、対応する入力ストリームまたは出力ストリームに直接アクセスできます。 PHPプロセス。

php://stdin は読み取り専用、php://stdout と php://stderr は書き込み専用です。

php://stdin

<?php
 while($line = fopen(&#39;php://stdin&#39;,&#39;r&#39;))
 {//open our file pointer to read from stdin
 echo $line."\n";
 echo fgets($line);//读取


<?php
 $fd = fopen(&#39;php://stdout&#39;, &#39;w&#39;);
 if ($fd) {
 echo $fd."\n";
 fwrite($fd, "test");
 fwrite($fd, "\n");
 fclose($fd);
 }
?>
<?php
 $stderr = fopen( &#39;php://stderr&#39;, &#39;w&#39; );
 echo $stderr."\n";
 fwrite($stderr, "uknow" );
 fclose($stderr);
?>

最も一般的に使用される疑似プロトコル。一般に、任意のファイルを読み取るために使用できます。

php://filter は、データ ストリームが開かれたときにアプリケーションをフィルタリングするために設計されたメタラッパーです。 これは、ストリームのコンテンツが読み取られる前に追加のフィルターを適用する機会がない、readfile()、file()、file_get_contents() などのオールインワン ファイル関数に役立ちます。


resource=de477f86848571466ba7e10ef7c5e981 このパラメータは必須です。フィルタリングするデータ ストリームを指定します。

read=10897605d3dd8fab45058b5150a800e4 このパラメータはオプションです。 1 つ以上のフィルター名をパイプ文字で区切って設定できます。

write=2c67c8a165d423872251bfd9adc101eb このパラメータはオプションです。 1 つ以上のフィルター名をパイプ文字で区切って設定できます。

9e177fbb2a5d8a88878b62022937adac read= または write= のプレフィックスが付いていないフィルタ リストは、必要に応じて読み取りチェーンまたは書き込みチェーンに適用されます。

<?php
    include($_GET[&#39;file&#39;])
?>

http://127.0.0.1/code/1.php?file=php://filter/read=convert.base64-encode/resource=./phpinfo.php


これらを読んだ後、私は信じますケース この方法はマスターしました。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

関連書籍:

PHP の高トラフィックの最適化?

PHP製品フラッシュセールのタイミング実装(大規模なトラフィックを解決するソリューション)

PHPがWebサイトの大規模なトラフィックと高い同時実行性をどのように解決するか

以上がphpプロトコルの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Ajaxの使用方法次の記事:Ajaxの使用方法