ホームページ > バックエンド開発 > PHPチュートリアル > PHP の文字列関数 strtr、str_replace、preg_replace の効率比較

PHP の文字列関数 strtr、str_replace、preg_replace の効率比較

WBOY
リリース: 2016-07-25 08:58:18
オリジナル
1471 人が閲覧しました
この記事では、PHP の文字列処理に使用される 3 つの関数 strtr、str_replace、preg_replace の効率の比較分析を紹介します。困っている友達はぜひ参考にしてください。

以下は、strtr、str_replace、preg_replace の効率を比較しています。 リーリー

出力結果から判断すると、str_replace の全体的なパフォーマンスは strtr や preg_replace よりも優れています。 その理由は、str_replace のソース コード (http://code.google.com/p/cyy0523xc/source/browse/trunk/php/str_replace%E6%BA%90%E7%A0%81) を見るとわかります。 c) str_replace(array search, string|array replace, string subject) が実行されると、検索の各要素を順番にループします (添字やその他の順序に従っていません。これは、 array) を検索し、一致する件名に移動し、見つかった場合は、対応する置換で置き換えます。この時点で添字文字列の長さが大幅に変化し、対象文字列が比較的長い場合、添字の最大長から最小長までのループが 1 つ増えるため、これは確かに strtr よりも効率的です。ここでのオーバーヘッドも比較的大きくなります。ただし、str_replace の実装には注意が必要です。strtr のように最大一致が優先されるわけではありません。例:

リーリー

strtr が使用される場合、strtr は最大の一致を達成するため、出力結果は「1d」になります。ただし、検索文字列では「ab」が「abc」より前にランク付けされているため、str_replace は「1cd」を出力します。そのため、「ab」は最初に「1」に置き換えられます。

3 つの関数の使用法を要約します。 1. str_replace: これは、文字列置換の推奨方法として使用する必要があります。注意すべき点は、最も一致させたい要素を前に置くことです。

2、strtr: strtr は短い文字列を置換する場合にも非常に効率的ですが、検索配列の添え字の長さの違いも効率に大きな影響を与えます。また、strtr(string, string, string) は使用しないことをお勧めします。 (半角文字以外は文字化けしやすいです)。

3、preg_replace: 通常のマッチングを使用できます。この関数は間違いなく最強ですが、効率は少し低くなります。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート