Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将字符串传递到Javascript函数-如何正确转义?_Php_Javascript_Escaping_Quote - Fatal编程技术网

在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