現(xiàn)在PHP5.5版本出來了,我安裝了一下,變化真的不小。我們使用的聰明人實際上是不兼容的。當(dāng)我運行它時,出現(xiàn)以下錯誤:
意思是用preg_replace_callback來替換preg_replace中的/e參數(shù)??赡苁浅鲇诎踩紤],在php5.5中取消了這個參數(shù),但是這個preg_replace_callback函數(shù)不好用,所以就用那個Smarty_Compiler.class。把php文件第270行$search.'e'中的preg_replace(e去掉,本來可以的,但是問題又出來了,這個問題出現(xiàn)的幾率不大,就是寫不出來smarty 模板中的php 標(biāo)記代碼:{php}{/php}。
無法用preg_replace_callback() 函數(shù)替換此preg_replace()。具體更換方法如下:
在Smarty_Compiler 類中添加一個方法:
函數(shù)回調(diào)源($匹配){
返回''.$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)
.'''
, $源內(nèi)容);
用。來代替:
$source_content=preg_replace_callback($search,
array('self','callback_source')
, $源內(nèi)容);
就這樣,這樣就可以完美兼容php5.5了。
本文發(fā)表于推來客網(wǎng)站制作公司
我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!