PHP

[PHP]stream_set_chunk_sizeで読み取りチャンクサイズを制御する|ストリームフィルタと組み合わせた実践活用ガイド

はじめにPHPのストリームでデータを読み取るとき、内部的に「一度に何バイトずつ処理するか」というチャンクサイズが存在します。通常はPHPが自動で決めていますが、stream_set_chunk_size を使うとこのサイズを明示的に制御でき...
PHP

[PHP]stream_set_blocking完全解説|ノンブロッキングI/Oで高速ストリーム処理を実現する方法

はじめにPHPでファイルやネットワーク通信を扱う際、「処理が終わるまで次の行に進めない」という経験はないでしょうか。これはブロッキングI/Oと呼ばれる動作で、PHPのストリームはデフォルトでこのモードになっています。stream_set_b...
PHP

[PHP]stream_select完全ガイド|複数ストリームを同時監視してノンブロッキングI/Oを実現する多重化関数

はじめにPHPで複数のソケットやファイルディスクリプタを同時に扱う場合、単純にループで fread() を繰り返すと、どれか1つのストリームでデータ待ちが発生した瞬間に全体がブロックされてしまいます。stream_select() は、複数...
PHP

[PHP]stream_resolve_include_path完全ガイド|インクルードパスを解決してファイルの存在確認とオートローダーを安全に実装する

はじめにPHPで require や include を使う際、ファイルが include_path のどこに存在するかを事前に確認したいケースがあります。realpath() はカレントディレクトリやフルパスを基準に解決しますが、incl...
PHP

[PHP]stream_register_wrapper完全ガイド|カスタムストリームラッパーを自作してfopen・file_get_contentsを拡張する

はじめにPHPの fopen(' や fopen('php://memory') は、裏側でストリームラッパーという仕組みが動いています。stream_register_wrapper() を使うと、独自のプロトコルスキームを定義し、fop...
PHP

[PHP]stream_is_local完全ガイド|ストリームがローカルリソースかどうかを判定してセキュアなファイル処理を実現する

はじめにPHPでストリームを扱う際、「このストリームはローカルファイルか、それともネットワーク越しのリソースか」を判定したい場面があります。セキュリティチェック・キャッシュ戦略の分岐・パフォーマンス最適化など、ローカル/リモートの区別が重要...
PHP

[PHP]stream_get_transports完全ガイド|利用可能なソケットトランスポート一覧を取得してネットワーク接続を安全に構築する

はじめにPHPでソケット通信やネットワーク接続を扱う際、「このサーバー環境では SSL/TLS が使えるか?」「unix:// ドメインソケットは利用可能か?」といった確認が必要になる場面があります。stream_get_transport...
PHP

[PHP]stream_get_meta_data完全ガイド|ストリームの内部情報を取得してタイムアウト・シーク可否・ラッパー種別を正確に把握する

はじめにPHPでストリームを扱う際、「このストリームはシーク可能か?」「タイムアウトが発生していないか?」「ブロッキングモードか否か?」といった内部状態を確認したい場面があります。stream_get_meta_data() は、ストリーム...
PHP

[PHP]stream_get_line完全ガイド|任意のデリミタで1行読み取りを自在にコントロールするストリーム関数

はじめにPHPでストリームから1行ずつデータを読み取る際、fgets() を使うのが一般的です。しかし fgets() は改行文字(\n)しかデリミタとして認識できません。stream_get_line() は、任意の文字列をデリミタとして...
PHP

[PHP]stream_get_filters完全ガイド|利用可能なストリームフィルター一覧を取得して動的フィルター制御を実現する

はじめにPHPのストリームフィルターを使う際、「どんなフィルターが使えるのか確認したい」「カスタムフィルターが正しく登録されているか検証したい」「環境によって使えるフィルターが違う」といった場面があります。stream_get_filter...