Главная > Скрипты > Многострочные переменные и JavaScript

Многострочные переменные и 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

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

koder Скрипты ,

  1. B@rmaley.e>
    4 Январь 2010 в 18:12 | #1

    Понимает, и еще как…
    multyLineVariable = ’some string\
    new line\
    one more line’;
    Догадайтесь, что делают слеши в конце каждой строки.

  1. Пока что нет уведомлений.