サポート
Deprecated: preg_replace():について
タキ (2016/01/20 17:03)
設置URL : http://www
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u*********/public_html/libs/smarty/Smarty_Compiler.class.php on line 270
サーバーはHostingerジャパンです。
mod_rewrite対応をtrueにすると初見のサイトページ先が
いつもこのDeprecated: preg_replace():が出てくる。
ちなみに.htaccessにはこれがないとmod_rewrite対応できないみたいです。
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?pathinfo=$1&%{QUERY_STRING}
</IfModule>
自分から捜索すると
他の方の対策方法は
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);から
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
に変更すると解決です。
ですか、freoのCompiler.class.phpの270行では
/* replace special blocks by "{php}" */
$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);
どうやって改善するのは全くわからない。
皆さん、対応策があるかな?
どうか、お助けください
返信
- この記事に返信します。
- 返信の際は、設置URL以外の項目は入力必須です。