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