php7中對preg replace內的e不再支援

2021-10-08 08:00:15 字數 1017 閱讀 6960

最近開了乙個新的系統,直接用的之前的**,新系統中公升級了php版本,改用php7,之前用的是php5.6,然後一頓操作,**copy過來,環境開啟,然後,然後,然後就一片空白,傻眼了,最開始以為是配置問題,然而並不是,試了另乙個系統php7發現那個是用的smarty模板引擎,而現在這個系統是tpc,然後就一路斷點找問題。最後問題找到了,

$template = preg_replace("/$varregexp/es", "tpc_addquote('=\\1?>')", $template);
說一下解決方案,因為不再支援了所以需要使用替代方法,改用preg_replace_callback替換就好。

$template = preg_replace_callback(

"/$varregexp/s",

function ($r) use ($lang) ,

$template

);

當找到這個問題的時候想起之前遇到的乙個問題,之前的另乙個系統中公升級後發現db類報錯了,當時就是解決了問題,並不知道為什麼,想起是不是也是這個問題,找到修改記錄。原來如此~~

//更改前

$joinstr = preg_replace("/__([a-z_-]+)__/esu",c("db_prefix").".strtolower('$1')",$joinstr);

//更改後

$joinstr = preg_replace_callback("/__([a-z_-]+)__/",

function ($matches) ,$joinstr);

再記錄另乙個問題

當時使用到phpexcel

然後到php7中就報錯,phpexcel/calculation/functions.php 中581行的break

直接上**吧

遷移到php7,遷移PHP版本到PHP7

這篇文章主要介紹了遷移php版本到php7的方法,需要的朋友可以參考下 今天看到微博上說phpng也就是php7合併到master上了,大家都知道我是比較喜歡 最新版本的東西,看看有什麼特性,我就忍不住公升級去了,以前我的php版本是5.5.19,然後我就開始了。yum install git gi...

遷移到php7,遷移PHP版本到PHP7

遷移php版本到php7 今天看到微博上說phpng也就是php7合併到master上了,大家都知道我是比較喜歡 最新版本的東西,看看有什麼特性,我就忍不住公升級去了,以前我的php版本是5.5.19,然後我就開始了。如下 yum install git git clone 如下 單核 intel ...

php7 匿名繼承類 PHP7中的匿名類使用方法

在php7之後,php中加入了匿名類的特性。匿名類和匿名方法讓php成為了更現代化的語言,也讓我們的 開發工作越來越方便。我們先來看看匿名類的簡單使用。直接定義 obja new class public function getname echo i m obja obja getname 方法中...