gpt4 book ai didi

php - 将字符串传递到 PHP 中的 Javascript 函数中 - 如何正确转义?

转载 作者:行者123 更新时间:2023-11-28 21:05:17 24 4
gpt4 key购买 nike

我有以下代码:

echo '
<td>
<input type="button" name="delete" value="X" onclick="clearSelection(this.form, '.$type.');this.form.submit();" />
</td>'
;

问题是我无法将字符串传递给 clearSelection() Javascript 函数,因为 $type 需要放在括号中。

我尝试使用反斜杠、u0222、多个引号等,但没有找到解决方案。

解决方案:

$type = json_escape_string($type);
$raw_text = "clearSelection(this.form, $type); this.form.submit();";
$escaped_text = htmlspecialchars($raw_text);
echo '<td><input type="button" name="delete" value="X" onclick="'.$escaped_text.'" /></td>';

function json_escape_string($str){
$str = strtr($str, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
return "'".$str."'";
}

最佳答案

你需要先转义它:

$escaped_text = HtmlSpecialChars(json_encode($raw_text));

json_encode() 将其转换为有效的 JS 字符串,然后 HtmlSpecialChars() 将其转义以便在 HTML 属性中使用。

如果您的 PHP 旧版本没有 json_encode(),请改用它:

$escaped_text = HtmlSpecialChars(json_escape_string($raw_text));

function json_escape_string($str){
$str = strtr($str, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
return "'".$str."'";
}

对于您的特定变量:

$escaped_type = HtmlSpecialChars(json_escape_string($type));
echo '<td><input type="button" name="delete" value="X" onclick="clearSelection(this.form, '.$escaped_type.'); this.form.submit();" /></td>';

关于php - 将字符串传递到 PHP 中的 Javascript 函数中 - 如何正确转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10033731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com