Многострочные переменные и JavaScript
Небольшая заметка для программистов.
Появилась у меня необходимость сформировать кусок текста в PHP и вставить его в страницу средствами JavaScript.
Получилось что-то вроде
header('Content-type: text/javascript');
...
$msg = '....';
?>
alert('');
И все бы хорошо, но если $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
