preg_replace の /e 修飾子
なぜ危険か
/e修飾子は置換文字列をPHPコードとして実行していました。PHP 7で削除されたため、使い続けていると古いサーバーでは危険で、新しいサーバーでは動きません。
$out = preg_replace('/(\w+)/e', 'strtoupper("$1")', $text);
$out = preg_replace_callback('/(\w+)/', fn($m) => strtoupper($m[1]), $text);
対策
/e はコードを実行します。preg_replace_callback() を使いましょう。
コードを検査する
コードを検査する →
ファイルを貼り付けると、このルールに該当する行をすべて示します。