@Rus_K_o
Веб программист

Как передать многострочную переменную из PHP в JS?

У меня есть переменная в PHP:
$var = ['1', 'Вот это '.PHP_EOL.' многострочная строка'];


Мне её нужно передать в JS, и обычно я делаю вот так:
var array = JSON.parse('<?php print(json_encode($var)) ?>');


Но этот способ заканчивается ошибкой, если есть переносы строк:
Uncaught SyntaxError: Unexpected token in JSON
var array = JSON.parse('["1", "Вот это 
 многострочная строка"]');


Можно ли экранировать все каретки, чтобы выглядело примерно вот так:
var array = JSON.parse('["1", "Вот это \r\n многострочная строка"]');


Я безрезультатно пробовал использовать следующее:
print(str_replace("\r\n", "\\r\\n", json_encode($var)))


Не подскажете ли, как решить такую проблему, как мне экранировать все каретки, и правильно ли я вообще передаю переменную в JS?
  • Вопрос задан
  • 1410 просмотров
Решения вопроса 1
Поможет экранирование для символа переноса, например вот так:
$var = ['1', addcslashes('Вот это ' . PHP_EOL . ' многострочная строка', PHP_EOL)];


Экранировать строку надо до того, как загонять ее в json_encode.

Но в общем случае, если вам приходится так делать, значит что-то не так с архитектурой. Посмотрите на ответ выше.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы