Потому что на выходе (в js-коде) слеш должен присутствовать.
А \r?
' -> \'
Обижаюсь. Дорого. Слать деньги на z... :)
Разумеется :)
$text = preg_replace("/(\r?\n)/", "\\\$1", $text);
Вы в своем коде успешно экранируете апостроф, в результате он меняется сам на себя.
LEOnidUKG,
$text = $text[array_rand($text)];$text = str_replace("\n", "\\\n", $text);$text = str_replace("'", "\\'", $text);
пхп позволит сделать
$str = "start\nend"
В результате получится поломанный js
document.write('startend')
И сколько платите?
Сross Site Sсriрting, сокращенно CSS, чтобы не было путаницы со стилями, пишут XSS.
А зачем народу знать? Браузеры знают.