strpos、strstr、stripos、PHP の stristr 関数の分析、strposstristr_PHP チュートリアル
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 プログラミングを学習する皆さんのお役に立てれば幸いです。 http://www.bkjia.com/PHPjc/1135008.html

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
