处理javascript函数,处理包含引号的字符串

时间:2018-05-27 08:46:31

标签: javascript php string

所以,基本上我有一个用PHP创建的按钮,它运行一个JavaScript函数,例如

function CreateText(id, string){
  alert(id + '' + string);
}

所以PHPcode看起来像这样

echo "<img onclick='CreateText(3,\"$userinput\")'>";

用户输入来自文本框。但是,只要用户输入包含引号的字符串,就会抛出错误。

知道怎么解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试在HTML属性中创建有效的Javascript文字。对于Javascript,使用json_encode,要使其成为有效的HTML属性,请使用htmlspecialchars

$onclick = sprintf('CreateText(3, %s)', json_encode($userinput));
printf('<img onclick="%s">', htmlspecialchars($onclick));

请参阅http://php.net/sprintfhttp://php.net/printfhttp://php.net/json_encodehttp://php.net/htmlspecialchars