PHP の preg_replace 関数に関連する問題

WBOY
リリース: 2016-06-13 12:04:20
オリジナル
938 人が閲覧しました

PHP的preg_replace函数的问题

$string = "april 15, 2003";<br />$pattern = "/(/w+) (/d+), (/d+)/i";<br />$replacement = "/${1}1,/$3";<br />print preg_replace($pattern, $replacement, $string);<br />/* output<br />   ======<br />april1,2003<br />*/
ログイン後にコピー


$replacement = "/${1}1,/$3";
"/${1}1,/$3"这个是什么意思?


<br />$patterns = array ("/(19|20)(/d{2})-(/d{1,2})-(/d{1,2})/",<br />                   "/^/s*{(/w+)}/s*=/");<br />$replace = array ("//3///4///1//2", "$//1 =");<br />print preg_replace ($patterns, $replace, "{startdate} = 1999-5-27");<br />
ログイン後にコピー


$replace = array ("//3///4///1//2", "$//1 =");这个也是什么意思?
------解决方案--------------------
双引号中 php 会试图将 $ 解释为变量的前导
字符串 "${1}" 将引起变量未定义的错误
所以要转义掉,这样才会把 ${1} 交给 prea_replace 去处理

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