Многострочные переменные и JavaScript

Небольшая заметка для программистов.

Появилась у меня необходимость сформировать кусок текста в PHP и вставить его в страницу средствами JavaScript.

Получилось что-то вроде

 <?php header('Content-type: text/javascript'); ... $msg = '....'; ?> alert('<?=$msg;?>');

И все бы хорошо,  но если $msg содержит переводы строки, то JavaScript не сработает, не понимает он многострочные переменные!

Выход нашел на php.net

function jsAddSlashes($str) {
$pattern = array(
“/\\\\/”  , “/\n/”    , “/\r/”    , “/\”/”    ,
“/\’/”    , “/&/”     , “/</”     , “/>/”
);
$replace = array(
“\\\\\\\\”, “\\n”     , “\\r”     , “\\\”"    ,
“\\’”     , “\\x26″   , “\\x3C”   , “\\x3E”
);
return preg_replace($pattern, $replace, $str);
}

Функция экранирует спец-символы и возвращаемое значение можно смело использовать в js

Оригинал статьи на myseoincome.ru