$options = Typecho_Widget::widget('Widget_Options');
$sUrl = str_ireplace('/', '\/', rtrim($options->siteUrl, '/'));
$preg = '#(<a .*?href=")(?!' . $sUrl . ')([^"]+)"(.*?<\/a>)#ise';
$text = preg_replace($preg, "stripslashes('') . '$options->siteUrl' . 'go.html?url=' . base64_encode('') . '\" target=\"_blank\"' . stripslashes('')", $text);
代碼放到PHP7.0後報錯了,根據(jù)提示得知是preg_replace被廢棄了,得用preg_replace_callback代替。請問怎麼做?
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
不是preg_replace被廢棄,是/e這個修飾符被廢棄。
我想大概應(yīng)該這樣改
preg_replace_callback($preg,
function ($matches) {
return stripslashes($matches[1]).$options->siteUrl.'go.html?url='.base64_encode($matches[2]).'\" target=\"_blank\"'.stripslashes($matches[3]);
});
哪裡看出放棄了這個函數(shù)了 ?
http://php.net/manual/zh/func...
支援 (PHP 4, PHP 5, PHP 7)
貼報錯誤提示吧