我需要正确转义PHP字符串,以便它可以在onclick中用作字符串参数。
我的字符串存储在$x
中,它可能包含单引号('),双引号(“),&符号(&)和反斜杠(\)。
我认为这段代码是必要且充分的:
<a onclick="alert('<?= str_replace(array("\\", "'"), array("\\\\",'\x27'), htmlspecialchars($x)) ?>')" href="#">Click here</a>
htmlspecialchars
函数负责双引号和&符号。 str_replace
负责单引号和反斜杠。 (我尝试在htmlspecialchars
中使用ENT_QUOTES,但在这种情况下这还不够。)
这可以简化吗? 我错过了什么吗?