ホームページ > バックエンド開発 > PHPチュートリアル > アドバイスを求めている初心者~通常のパターン修飾子 e について、なぜ役に立たないと感じますか?

アドバイスを求めている初心者~通常のパターン修飾子 e について、なぜ役に立たないと感じますか?

WBOY
リリース: 2016-06-23 14:12:07
オリジナル
990 人が閲覧しました

通常の PHP

たとえば、これら 2 つのコードは文字列内の URL リンクと一致します

これはパターン修飾子 e を使用しています:

$urlPattern = "/(www.|https?://|ftp:/ / |news://|telnet://){1}([^["']+?)(com|net|org)(/[w-./?%&=]*)?/ei" ;

$url="PHP のアドレスは次のとおりです: www.php.com";

echo preg_replace($urlPattern, "'\2'.'\3'", $url);修飾子 e:

$urlPattern = "/(www.|https?://|ftp://|news://|telnet://){1}([^["']+?) (com |net|org)(/[w-./?%&=]*)?/i";

$url="PHP のアドレスは www.php.com";

echo preg_replace($ urlPattern, ' \2'.'\3', $url);

出力結果は同じです~
どちらも www.php.com を php.com に置き換えます

二重引用符の追加レイヤーだと思います 以上です。 .
でも、e を使わないほうが簡単な気がします

この e はどうなっているのでしょうか?


ディスカッションへの返信 (解決策)
e (PREG_REPLACE_EVAL)

この修飾子が設定されている場合、preg_replace() は、置換文字列に対して後方参照置換を実行した後、置換文字列を PHP コードとして評価します (eval 関数モード)。を実行し、実際に置換に関与する文字列として実行結果を使用します。一重引用符、二重引用符、バックスラッシュ()、および NULL 文字は、後方参照置換中にバックスラッシュでエスケープされます。

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