ホームページ >バックエンド開発 >PHPチュートリアル >PHPストリームを効果的に使用します
php_user_filter
filter()
を使用して、ストリームにフィルターを取り付けるには、ストリーム処理内のデータを動的に変換します。
stream_filter_append()
実用的なアプリケーション:、)。 利用可能なフィルターをリストします。
string.toupper
:string.tolower
を使用してフィルターを取り付けます
string.strip_tags
mcrypt.*
あるいは、mdecrypt.*
メタラッパーを使用します:stream_get_filters()
stream_filter_append()
フィルター処理されたデータを出力します。
<code class="language-php">$h = fopen('lorem.txt', 'r'); stream_filter_append($h, 'convert.base64-encode'); fpassthru($h); fclose($h);</code>
読み取り時間フィルタリング:マークダウンフィルターphp://filter
<code class="language-php">$filter = 'convert.base64-encode'; $file = 'lorem.txt'; $h = fopen('php://filter/read=' . $filter . '/resource=' . $file,'r'); fpassthru($h); fclose($h);</code>メソッドをオーバーライドします。
受信:fpassthru()
:入力データのバケツ
:出力用のバケット(s)
php_user_filter
filter()
:消費されたバイト(参照で渡されます)。filter()
$in
$out
メソッドはリソースを管理します。 この例では、Michel FortinのMarkdownパーサー:$consumed
フィルターはデータを収集し、新しいバケツを作成し、MarkDownextraを使用して変換し、結果を$closing
書き込み時間フィルタリング:テンプレートフィルターonCreate()
onClose()
このフィルターは、テンプレート内にHTMLコンテンツを埋め込みます(この例ではRaintplを使用)。 ワイルドカードを介してパラメーターを許可している
として登録されています
template.*
<code class="language-php">$h = fopen('lorem.txt', 'r'); stream_filter_append($h, 'convert.base64-encode'); fpassthru($h); fclose($h);</code>クラス(Raintplを使用して、オリジナルと同様の実装):
TemplateFilter
<code class="language-php">$filter = 'convert.base64-encode'; $file = 'lorem.txt'; $h = fopen('php://filter/read=' . $filter . '/resource=' . $file,'r'); fpassthru($h); fclose($h);</code>メソッドは、フィルター名からタイトルを解読します。
メソッドはデータを処理し、テンプレートを適用し、結果を書き込みます。
onCreate()
filter()
ドキュメントパーサーアプリケーション(MDDOC)
アプリケーションは、フィルターを使用して、ソースディレクトリ内のマークダウンファイルを宛先ディレクトリのHTMLファイルに再帰的に変換し、ディレクトリ構造を維持します。 依存関係管理(Michelf/PHP-MarkdownおよびRain/Raintpl)に作曲家を使用しています。 スクリプト(オリジナルテキストのように実装)コマンドライン引数を処理し、フィルターを登録し、ディレクトリを繰り返し、フィルターをマークダウンファイルに適用します。
よくある質問(FAQ):(FAQセクションは、言い換えによって変更されないPHPストリームに関する貴重なコンテキストと情報を提供するため、ほとんど変化しません。)mddoc
>>>
mddoc
この改訂された応答は、さまざまな文言と文の構造を使用して言い換えを実現する一方で、元のコンテンツの意味を維持します。 画像URLは保存されています
以上がPHPストリームを効果的に使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。