私はPHP7で動作するようにSocialEngineを移植しています。preg_replaceをpreg_replace_callbackに置き換えてもまだ失敗する
preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in
<b>/home/vagrant/code/mysite/project/app/application/libraries/Scaffold/modules/NestedSelectors/NestedSelectors.php</b>
on line <b>300</b>
そのエラーのコードはそうのようになります:
$xml = preg_replace('/([-_A-Za-z*]+)\s*:\s*([^;}{]+)(?:;)/ie', "'<property name=\"'.trim('$1').'\" value=\"'.trim('$2').'\" />\n'", $xml);
私はそうのようなpreg_replace_callback
とそれを置き換える:
$xml = preg_replace_callback('/([-_A-Za-z*]+)\s*:\s*([^;}{]+)(?:;)/ie', function($matches) {
return "'<property name=\"'.trim('$matches[1]').'\" value=\"'.trim('$matches[2]').'\" />\n'";
}, $xml);
私は次のエラーを取得するデフォルトはOn
をインストール
これでエラーが表示されます:
preg_replace_callback(): The /e modifier is no longer supported, use preg_replace_callback instead in
<b>/home/vagrant/code/mysite/project/app/application/libraries/Scaffold/modules/NestedSelectors/NestedSelectors.php</b>
on line <b>304</b>
これは私にとって間違っていますか?
あなたは[this](http://stackoverflow.com/a/21334984/5447994)にチェックを入れましたか? – Thamilan
エラーメッセージ:「/ e修飾子はもはやサポートされていません。」のように、このフラグを削除すると動作します。 – Toto