preg_replace 의 e 변경자 사용에 대한 질문

랜덤여신의 이미지

preg_replace 의 e 변경자 사용에 대한 질문

preg_replace 에서 e 변경자를 사용할 때에,
두번째 인자의 \\1 이 그대로 치환되면서 문제점이 생기는 것 같습니다.

$str = '[""]';

//$str = preg_replace('#\\[(.+)\\]#e', '(unset)print(str_replace(\'\\"\', \'"\', \'\\1\'))', $str);
$str = preg_replace('#\\[(.+)\\]#e', '(unset)print(\'\\1\')', $str);

이렇게 하면, 원하는 출력인 "" 이 나오지 않고 \"\" 이 나옵니다.

그래서 임시방편으로 str_replace 로 \" 를 " 로 바꾸도록 해 놓긴 했습니다만...

근본적인 대책은 없나요?