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()을 쓰세요.
내 코드 검사하기
내 코드 검사하기 →
파일을 붙여넣으면 이 규칙에 걸리는 줄을 모두 찾아드립니다.