在线看片电视剧免费看,精品国产一区二区三区2021,99久久久无码国产精品免费,精品人妻少妇嫩草AV无码专区

    電話(huà)

    0411-39943997

仟億科技
客服中心
  • 電話(huà)
  • 電話(huà)咨詢(xún):0411-39943997
  • 手機
  • 手機咨詢(xún):15840979770
    手機咨詢(xún):13889672791
網(wǎng)絡(luò )營(yíng)銷(xiāo) >更多

網(wǎng)頁(yè)模板引擎正則表達式調試的技巧

作者:billionnet 發(fā)布于:2012/3/28 17:59:33 點(diǎn)擊量:

很久沒(méi)有遇上PHP難題了,這次正則問(wèn)題占了一點(diǎn)時(shí)間,還是老問(wèn)題最大回溯、遞歸限制問(wèn)題。學(xué)習透之后其實(shí)并不難修改調試有這類(lèi)問(wèn)題的正則。主要是以下幾點(diǎn)。

基于正則表達式替換的模板引擎很容易遇上正則表達式最大回溯/遞歸的限制。


惰性匹配并不可怕,正常情況下模板并不會(huì )不夠用,往往不會(huì )超出限制,discuz的模板引擎就大量使用了。但是因此而不去注意、不去學(xué)習,則容易書(shū)寫(xiě)錯誤并遇上問(wèn)題。


當preg_*返回的是null的時(shí)候則要注意了,判斷函數是is_null.


出錯并不可怕,但是最好把錯誤都完整的輸出,這樣調試就很容易了。


除了輸出出錯原因,還要輸出匹配的文本和使用的正則,這樣就很容易調試了。


PHP代碼











  1. if (is_null($tmp)){   

  2.     $error_code = preg_last_error();   

  3.     switch($error_code){   

  4.         case PREG_NO_ERROR :   

  5.             echo ""PREG_NO_ERROR"";   

  6.             break;   

  7.         case PREG_INTERNAL_ERROR:   

  8.             echo ""PREG_INTERNAL_ERROR"";   

  9.             break;   

  10.         case PREG_BACKTRACK_LIMIT_ERROR:   

  11.             echo ""PREG_BACKTRACK_LIMIT_ERROR"";   

  12.             break;   

  13.         case PREG_RECURSION_LIMIT_ERROR:   

  14.             echo ""PREG_RECURSION_LIMIT_ERROR"";   

  15.             break;   

  16.         case PREG_BAD_UTF8_ERROR:   

  17.             echo ""PREG_BAD_UTF8_ERROR"";   

  18.             break;   

  19.         case PREG_BAD_UTF8_OFFSET_ERROR:   

  20.             echo ""PREG_BAD_UTF8_OFFSET_ERROR"";   

  21.             break;   

  22.         default:   

  23.             echo ""UNKNOW ERROR"";   

  24.     }   

  25.     exit;   

  26. }  


參考資料


1、2010, Laruence 《深悉正則(pcre)最大回溯/遞歸限制》


2、2011, PHP中文手冊 preg_last_error


 



分享到:


Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話(huà):0411-39943997 QQ:2088827823 37482752

法律聲明:未經(jīng)許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明

日本又黄又爽gif动态图| 亚洲国产区男人本色VR| 猫咪WWW免费人成人入口| 老熟妇仑乱一区二区视頻| 无码国产69精品久久久久网站| 亚洲熟妇色XXXXX欧美老妇|