Какой самый простой способ назначить строку, возвращаемую с сервера, в строку javascript? - PullRequest
2 голосов
/ 16 апреля 2010

Не работает следующее:

var js_str= '<?php echo $str_from_server; ?>';

Проблема в том, что $ str_from_server может содержать любые символов. Если он содержит одинарные кавычки, разрывы строк или другие, приведенный выше код будет прерываться. И у меня нет доступа к серверному коду. Какой самый простой способ «экранировать» содержимое $ str_from_server в строку javascript, а затем восстановить его позже?

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Поскольку вы напрямую выводите эту переменную в свой код JavaScript, вы можете использовать функцию json_encode:

var js_str = <?php echo json_encode($str_from_server); ?>;

Это безопасно спасет вас от кавычек, например ::1007 *

<?
  $str ='"\'"\'"\'"';
  echo  json_encode($str); // "\"'\"'\"'\""
0 голосов
/ 16 апреля 2010

Я бы сделал:

var js_str= '<?= addslashes($str_from_server); ?>';

или:

var js_str= '<?= str_replace("'", "\'", $str_from_server); ?>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...