PHPのstrpos、strstr、stripos、stristr関数の分析、strposstristr
この記事では、参考までにPHPのstrpos、strstr、stripos、stristr関数を分析します。具体的な内容は次のとおりです
ストラポス
混合 strpos ( string $haystack,mixed $needle [, int $offset = 0 ] )
offset を指定した場合は、offset 位置から検索を開始します。オフセットを負の値にすることはできません。
干し草の山で針が最初に現れた場所に戻ります。干し草の山で針が見つからない場合は FALSE を返します。
needle、needle が文字列でない場合、整数値に変換され、その値の ASCII 文字が割り当てられます。以下の例を参照してください。
例
リーリー注意すべき点は、needle が文字列でない場合、php_needle_char 関数が呼び出されて、needle を整数とその ASCII 値に変換することです。
検索機能
最後に返された関数が見つかり、php_memnstr 関数が検索メソッドを実装します。それでは、続行して php_memnstr 関数が何をするのか見てみましょう:
#define php_memnstr zend_memnstr
php_memnstr は、関数 zend_memnstr のマクロ定義です。次のように zend_memnstr 関数を表示します。
リーリー
最初の最適化は、(char *)memchr(p, *needle, (end-p+1) が end – neede_len + 1 (つまり haystack_len+1) で検索されるためです。p が空の場合、それはニードルの 番目の A を意味しますキャラクターはpに登場しません。 strstrstring strstr ( string $haystack,mixed $needle [, bool $before_needle = false ] )
干し草の山で最初に出現した針から最後までの文字列を返します。
この関数では大文字と小文字が区別されます。
干し草の山に針が存在しない場合は、FALSE を返します。
before_needle が true の場合、needle が初めて haystack に表示される前に、haystack 内の文字列を返します。
strstrコアソースコードリーリー strstr 関数の前半は strpos と似ていますが、異なる点は、strstr 関数が位置を見つけた後、干し草の山部分の文字列を返す必要があることです。 part 変数は、strstr 関数を呼び出すときに渡される before_needle 変数です。
ストライポ混合ストリップ ( string $haystack, string $needle [, int $offset = 0 ] )
大文字と小文字を区別しない strpos。実装方法は以下と同様で、主にコピーを使用し、比較対象の文字列を小文字に変換してから検索します。
ストリストstring stristr ( string $haystack,mixed $needle [, bool $before_needle = false ] )
大文字と小文字を区別しない strstr。
コアソースコード
found が php_stristr から取得されたことがわかります。引き続き php_stristr 関数を確認します。 リーリー
この関数の機能は、文字列を小文字に変換し、php_mennstr 関数を呼び出して、haystack 内で針が最初に出現する位置を見つけることです。
概要
strpos/striposは位置を返すのですが、位置は0から計算されるため、検索失敗の判定には===FALSEを使う方が適しています。
PHP のソース コードを読むことで得られることはたくさんあります。一方で、特定の関数の具体的な実装原理を知ることができ、他方では、プログラミングの最適化ソリューションを学ぶことができます。以上がこの記事の全内容です。PHP プログラミングを学習する皆さんのお役に立てれば幸いです。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









