Escape-кавычки при создании JavaScript из PHP - PullRequest
0 голосов
/ 24 октября 2011

По сути, я беру пользовательский ввод и передаю его функции javascript на странице из php.Но поскольку пользователь использует апострофы, я получаю ошибки.Какую корректную функцию в php использовать для переменной, которая будет заключена в кавычки.IE:

Несколько php:

$userString = "Joe's Pizza";
// escape here
echo "<script type=\"text/javascript\">myFunction('$userString');</script>";

Большое спасибо!

Ответы [ 2 ]

6 голосов
/ 24 октября 2011

Оберните его в объект / ассоциативный массив и используйте json_encode.

$array = array('data' => $userString);
$encoded_array = json_encode($array);
echo "<script type=\"text/javascript\">myFunction($encoded_array);</script>";

myFunction может выглядеть так:

function myFunction(obj)
{
  var data = obj.data;
  ... 
}

Это также позволяет вам при необходимости легко сделать объект более сложным.

2 голосов
/ 24 октября 2011

addslashes ; например,

$userString = addslashes("Joe's Pizza");
print '<script type="text/javascript">myFunction('$userString');</script>";;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...