本文實例講述了PHP正則替換函數(shù)preg_replace()報錯:Notice Use of undefined constant的解決方法。分享給大家供大家參考,具體如下:
環(huán)境錯誤級別:error_reporting =E_ALL
某天我在研究一下php下的正則替換函數(shù)perg_replace(),
示例:
代碼:
$subject="2222<b>a</b>2222fff222222222A22222";$pattern = "/(a)/e";$replacement= "md5($1)";//$1,取匹配到的內(nèi)存變量的值(/1也可以,只不過要注意雙引號內(nèi)的轉(zhuǎn)義)echo preg_replace($pattern,$replacement, $subject);
結(jié)果:
雖然結(jié)果是對的,但是報了如下的錯誤:
Notice: Use of undefined constant a - assumed 'a' in D:/xampp/htdocs/studyRoom/regular/index.php(18) : regexp code on line 1
造成這原因的是在$replacement= "md5($1)";中的md5()方法,在參數(shù)傳遞的時候,參數(shù)沒有加單引號或者雙引號,系統(tǒng)就認(rèn)為是個常量,所以就出現(xiàn)了這樣的問題。改成如下 即可:
$replacement= "md5('$1')";(或:$replacement= "md5('//1')";)
注:在取匹配到的內(nèi)存變量的值的時候可以用"$1"或者"/1"這樣的形式.
希望本文所述對大家PHP程序設(shè)計有所幫助。
新聞熱點
疑難解答
圖片精選