国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

模板引擎正則表達式調(diào)試小技巧

2024-05-04 23:17:39
字體:
供稿:網(wǎng)友
基于正則表達式替換的模板引擎很容易遇上正則表達式最大回溯/遞歸的限制。
惰性匹配并不可怕,正常情況下模板并不會不夠用,往往不會超出限制,discuz的模板引擎就大量使用了。但是因此而不去注意、不去學習,則容易書寫錯誤并遇上問題。
當preg_*返回的是null的時候則要注意了,判斷函數(shù)是is_null.
出錯并不可怕,但是最好把錯誤都完整的輸出,這樣調(diào)試就很容易了。
除了輸出出錯原因,還要輸出匹配的文本和使用的正則,這樣就很容易調(diào)試了。
PHP代碼

復制代碼 代碼如下:


<?php
if (is_null($tmp)){
$error_code = preg_last_error();
switch($error_code){
case PREG_NO_ERROR :
echo 'PREG_NO_ERROR';
break;
case PREG_INTERNAL_ERROR:
echo 'PREG_INTERNAL_ERROR';
break;
case PREG_BACKTRACK_LIMIT_ERROR:
echo 'PREG_BACKTRACK_LIMIT_ERROR';
break;
case PREG_RECURSION_LIMIT_ERROR:
echo 'PREG_RECURSION_LIMIT_ERROR';
break;
case PREG_BAD_UTF8_ERROR:
echo 'PREG_BAD_UTF8_ERROR';
break;
case PREG_BAD_UTF8_OFFSET_ERROR:
echo 'PREG_BAD_UTF8_OFFSET_ERROR';
break;
default:
echo 'UNKNOW ERROR';
}
exit;
}


參考資料
1、2010, Laruence 《深悉正則(pcre)最大回溯/遞歸限制》
2、2011, PHP中文手冊 preg_last_error

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 苗栗市| 安仁县| 铜鼓县| 太康县| 石城县| 镇宁| 梁河县| 二连浩特市| 府谷县| 山东省| 历史| 富蕴县| 商都县| 化德县| 镇远县| 绥宁县| 泰和县| 资源县| 泰顺县| 高阳县| 新宁县| 锦州市| 融水| 鹰潭市| 耿马| 鲜城| 安达市| 屯门区| 巴林左旗| 浙江省| 和平县| 福泉市| 大冶市| 化州市| 舞阳县| 政和县| 荔波县| 芒康县| 玉屏| 金秀| 浮山县|