この記事では主に、PHP Streams (ストリーム) の詳細な紹介と使用方法を紹介します。PHP Streams は組み込みのコア操作であり、一般の開発者が使用することはほとんどありません。これは、ファイル、ネットワーク、データ圧縮、およびその他のファイルに似た操作を統合するために使用され、これらのファイルに似た操作に一連の共通関数インターフェイスを提供します。お役に立てれば幸いです。
PHP ストリームは、通常の開発者がほとんど使用しない組み込みのコア操作であり、ファイル、ネットワーク、データ圧縮などのファイルのような操作を統合するために使用され、これらのファイルに一連の共通関数インターフェイスを提供します。 - のような操作。
ストリームはストリーミング動作を持つリソースオブジェクトであり、各ストリームオブジェクトにはラッパークラスがあります。ストリームは、
PHP にデフォルトで備わっている組み込みのパッケージング クラスを見てみましょう:
print_r(stream_get_wrappers()); /* Array ( [0] => php [1] => file [2] => glob [3] => data [4] => http [5] => ftp [6] => zip [7] => compress.zlib [8] => https [9] => ftps [10] => phar ) */
PHP マニュアルで PHP でサポートされているプロトコルとパッケージング クラスを見てください。
file_get_contents() を使用してデータを取得する次のコードを見てください:
/* Read local file from /home/bar */ $localfile = file_get_contents ( "/home/bar/foo.txt" ); /* Identical to above, explicitly naming FILE scheme */ $localfile = file_get_contents ( "file:///home/bar/foo.txt" ); /* Read remote file from www.example.com using HTTP */ $httpfile = file_get_contents ( "http://www.example.com/foo.txt" ); /* Read remote file from www.example.com using HTTPS */ $httpsfile = file_get_contents ( "https://www.example.com/foo.txt" ); /* Read remote file from ftp.example.com using FTP */ $ftpfile = file_get_contents ( "ftp://user:pass@ftp.example.com/foo.txt" ); /* Read remote file from ftp.example.com using FTPS */ $ftpsfile = file_get_contents ( "ftps://user:pass@ftp.example.com/foo.txt" );
実際には、readfile('/path/to/somefile.txt') または readfile('file:///path /to/ somefile.txt')、これら 2 つのメソッドは同等です。 PHP のデフォルトのパッケージング クラスは file:// であるためです。
マニュアルには、stream_register_wrapper() を通じて独自のラッパーを登録できることが明確に記載されています。マニュアルの例を確認してください。
OK、ここで PHP:// について簡単に説明します。PHP:// は、PHP が IO ストリームを処理するために使用するラッパー クラスです (ここをクリックすると例が表示されます)。より強力な入出力ストリームには、PHP://:
php://stdin を介してアクセスできます。cli がスクリプトを実行するときにキーボード入力を取得するために使用されるなど、PHP プロセスの対応する入力ストリームにアクセスします。
php://stdout: PHP プロセスの対応する出力ストリームにアクセスします。
php://stderr: PHP プロセスの対応するエラー出力にアクセスします。
php://input: 要求された生データにアクセスする読み取り専用ストリーム。
php://output: 書き込み専用のデータ ストリーム。print や echo と同じ方法で出力領域に書き込まれます。
php://fd: 指定されたファイル記述子への直接アクセスを許可します。例 php://fd/3 はファイル記述子 3 を指します。
php://memory: 一時データの読み取りと書き込みを許可します。 データをメモリに保存します。
php://temp: 上記と同様に、メモリが事前に定義された制限 (デフォルトは 2MB) に達すると、一時ファイルに保存されます。
php://filter: フィルター。
PHP は、コンテキストとフィルターを通じてパッケージ化クラスを変更および拡張することもできます。
(1) コンテキストに関しては、たとえば、PHP は stream_context_create() を使用してファイルを取得するためのタイムアウトを設定します。
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ) ); $context = stream_context_create($opts); $html =file_get_contents('http://www.jb51.net', false, $context);
(2) フィルターについては、次のコードを見てみましょう。 PHP ファースト 組み込みフィルターとは:
print_r(stream_get_filters()); /* Array ( [0] => convert.iconv.* [1] => mcrypt.* [2] => mdecrypt.* [3] => string.rot13 [4] => string.toupper [5] => string.tolower [6] => string.strip_tags [7] => convert.* [8] => consumed [9] => dechunk [10] => zlib.* ) */
次のように、stream_filter_register() と組み込みの php_user_filter を使用してカスタム フィルターを作成できます。
PHP 中間ストリームを提供します 関数リストは次のとおりです:
/* Define our filter class */ class strtoupper_filter extends php_user_filter { function filter ( $in , $out , & $consumed , $closing ) { while ( $bucket = stream_bucket_make_writeable ( $in )) { $bucket -> data = strtoupper ( $bucket -> data ); $consumed += $bucket -> datalen ; stream_bucket_append ( $out , $bucket ); } return PSFS_PASS_ON ; } } /* Register our filter with PHP */ stream_filter_register ( "strtoupper" , "strtoupper_filter" ) or die( "Failed to register filter" ); $fp = fopen ( "foo-bar.txt" , "w" ); /* Attach the registered filter to the stream just opened */ stream_filter_append ( $fp , "strtoupper" ); fwrite ( $fp , "Line1\n" ); fwrite ( $fp , "Word - 2\n" ); fwrite ( $fp , "Easy As 123\n" ); fclose ( $fp ); readfile ( "foo-bar.txt" ); /* 结果如下: LINE1 WORD - 2 EASY AS 123 */
関連する推奨事項:
php ファイルの分割と結合 (再開可能なアップロード)
nginx を使用して構築+nginx- rtmp-module+ffmpeg ストリーミング メディア サーバーのメモ (5)
Xiaowan ストリーミング メディアの再生 - HLS ストリーミング メディア オンデマンド システム
以上がPHP Streamsストリームの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック



