smarty如何完美兼容php5.5和preg_replace_callback如何替換preg_replace

意思是說用preg_replace_callback來代替preg_replace里的/e參數,可能是因為安全性的考慮,在php5.5中把這個參數取消了,但是這個preg_replace_callback函數用起來不順手,我就把那個Smarty_Compiler.class.php文件里的第270行里的preg_replace($search.'e'里的e去掉了,果然好了,可是問題又出來了,這個問題出來的幾率不多,就是無法在smarty模板里寫入php標簽代碼:{php}{/php}。
沒辦法還是要把這個preg_replace()用preg_replace_callback()函數來替換,具體替換方法如下:
在Smarty_Compiler這個類里加入一個方法:
function callback_source($matches){
return "".$this->_quote_replace($this->left_delimiter)."php".str_repeat("n",substr_count("","n"))."".$this->_quote_replace($this->right_delimiter)."";
}
然后在第270行左右找到:
$source_content = preg_replace($search.'e', "'"
. $this->_quote_replace($this->left_delimiter) . 'php'
. "' . str_repeat("n", substr_count('\0', "n")) .'"
. $this->_quote_replace($this->right_delimiter)
. "'"
, $source_content);
替換成:
$source_content = preg_replace_callback($search,
array("self","callback_source")
, $source_content);
即可,這樣就可以完美兼容php5.5了。
本文發(fā)布于尚品中國 網站制作公司
推薦新聞
更多行業(yè)-
醫(yī)療行業(yè)網站建設方案
醫(yī)療行業(yè)的網站建設有其特殊性,需要遵循一些規(guī)范和注意事項,以確保網站的...
2023-06-07 -
網站優(yōu)化程序哪家好?看看如何編輯高質量優(yōu)化程序
作為一個合格的標志,我們不需要使用超文本標記語言代碼,但是我們需要知道...
2021-08-31 -
網站建設公司高端技術團隊全方位設計
目前,每個城市都有著很多家網站建設公司,相互之間在建站服務上的競爭也是...
2020-07-22 -
如何選擇網站制作公司?有什么樣的考察標準?
現實生活當中的網站制作公司非常多,正是因為大多數企業(yè)對于這些網站有了需...
2022-10-28 -
企業(yè)官網建設與開發(fā):問題預防與實戰(zhàn)策略
企業(yè)官網不僅僅是品牌展示的平臺,更是與客戶溝通、提升品牌形象和促進業(yè)務...
2024-12-20 -
定制網站建設流程介紹
網站建設是指使用標識語言,通過一系列設計、建模、和執(zhí)行的過程將電子格式...
2019-06-18
預約專業(yè)咨詢顧問溝通!
免責聲明
非常感謝您訪問我們的網站。在您使用本網站之前,請您仔細閱讀本聲明的所有條款。
1、本站部分內容來源自網絡,涉及到的部分文章和圖片版權屬于原作者,本站轉載僅供大家學習和交流,切勿用于任何商業(yè)活動。
2、本站不承擔用戶因使用這些資源對自己和他人造成任何形式的損失或傷害。
3、本聲明未涉及的問題參見國家有關法律法規(guī),當本聲明與國家法律法規(guī)沖突時,以國家法律法規(guī)為準。
4、如果侵害了您的合法權益,請您及時與我們,我們會在第一時間刪除相關內容!
聯系方式:010-60259772
電子郵件:394588593@qq.com