Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Многострочные строки и экранирование (https://javascript.ru/forum/misc/27157-mnogostrochnye-stroki-i-ehkranirovanie.html)

Sufir 04.04.2012 12:21

Многострочные строки и экранирование
 
Не знаю как правильно это сформулировать, поэтому озаглавил тред "Многострочные строки или экранирование"

Есть объект, данные в него вносятся из php и могут быть многострочными и содержать всякие символы.

echo <<<END
var contact = {
  id: $id,
  referer: $referer,
  name: $name,
  message: $message,
  comment: jQuery( ".comment", contactElement ).text() }
END;

var contact = {
  id: "2630",
  referer: "http://url.ru/main/account/profile/",
  name: "some name",
  message: "something text
_http://url.ru/main/46035/
and anything here!!",
  comment: jQuery( ".comment", contactElement ).text()
}


Собственно вопрос, как мне эти данные заэкранировать, что-б никакие бяки не вылезли (unexpected identifier) и главное многострочный текст использовать, что б потом его можно было поместить в textarea?

htmlspecialchars, htmlentities, addslashes не помогают.

Была мысль json_encode использовать для создания объекта, но часть данных в нём формируется динамически уже на странице.

Pavel M. 04.04.2012 13:36

в переменной $message в Php просто уберите переносы строк либо замените их на \n

Маэстро 04.04.2012 13:55

Цитата:

Сообщение от Sufir (Сообщение 166974)
... что-б никакие бяки не вылезли...

И еще определитесь, с какими кавычками Вы работаете (двойными или одинарными). Потом их надо будет экранировать. Потому как если не экранировать, то при написании украинского слова ОБ'ЯВА или ОБ"ЯВА ("объявление") начнутся проблемы...
Также надо экранировать слэши (экранирующие слэши от самих себя) ;)


Часовой пояс GMT +3, время: 08:49.