在PHP中将字符串传递到Javascript函数-如何正确转义?
我有以下代码:在PHP中将字符串传递到Javascript函数-如何正确转义?,php,javascript,escaping,quote,Php,Javascript,Escaping,Quote,我有以下代码: echo ' <td> <input type="button" name="delete" value="X" onclick="clearSelection(this.form, '.$type.');this.form.submit();" /> </td>' ; 你需要先逃离它: $escaped_text = HtmlSpecialChars(json_encode($raw_text));
echo '
<td>
<input type="button" name="delete" value="X" onclick="clearSelection(this.form, '.$type.');this.form.submit();" />
</td>'
;
你需要先逃离它:
$escaped_text = HtmlSpecialChars(json_encode($raw_text));
json\u encode()
将其转换为有效的JS字符串,然后HtmlSpecialChars()
将其转义以在HTML属性中使用
如果您有一个没有json_encode()的旧版本PHP,请改用此版本:
$escaped_text = HtmlSpecialChars(json_escape_string($raw_text));
function json_escape_string($str){
$str = strtr($str, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
return "'".$str."'";
}
$escape_text=HtmlSpecialChars(json_escape_字符串($raw_text));
函数json_escape_字符串($str){
$str=strtrtr($str,数组('\\'=>'\\\\',“'''=>“\\',“''=>'\\',“'''=>'\\',“\r'=>'\\r',“\n'=>'\\n','您需要首先对其进行转义:
$escaped_text = HtmlSpecialChars(json_encode($raw_text));
json\u encode()
将其转换为有效的JS字符串,然后HtmlSpecialChars()
将其转义以在HTML属性中使用
如果您有一个没有json_encode()的旧版本PHP,请改用此版本:
$escaped_text = HtmlSpecialChars(json_escape_string($raw_text));
function json_escape_string($str){
$str = strtr($str, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
return "'".$str."'";
}
$escape_text=HtmlSpecialChars(json_escape_字符串($raw_text));
函数json_escape_字符串($str){
$str=strtrtr($str,array('\\'=>'\\\\'',“''''=>“\\'',''''=>'\\'',“\r'=>'\\r',“\n'=>'\\n','如果json\u encode()
不可用怎么办?调用未定义的函数json\u encode()
.PHP v.5.2.9。好的,似乎没有json\u encode(),它就可以工作了
。使用替代函数更新答案如果我使用你的函数,我会在onclick属性(onlick=“”
)中得到'clearSelection(this.form,\'products\);this.form.submit();
)。这似乎不起作用。你应该只转义$type
!如果json\u encode()
不可用?调用未定义的函数json_encode()
.PHP v.5.2.9。好的,似乎在没有json_encode()
的情况下它可以工作。如果我使用你的函数,我会在onclick属性(onlick=“”)中得到'clearSelection(this.form,\'products\);this.form.submit()'
,更新答案并使用另一个函数
)。这似乎不起作用。您应该只转义$type
!