Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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
Javascript 如何在onClick=“函数(字符串)”中转义字符串_Javascript_Php_Html - Fatal编程技术网

Javascript 如何在onClick=“函数(字符串)”中转义字符串

Javascript 如何在onClick=“函数(字符串)”中转义字符串,javascript,php,html,Javascript,Php,Html,我必须将可能包含所有内容的字符串回显到以下html行中: 我不知道如何正确地转义我用php传递的字符串,似乎有很多问题,而且json_encode在用双引号包装输出时不起作用,因为在onclick=之后双引号已经开始 仅仅替换单引号也不起作用,因为\'将被替换为\' 有什么想法吗?您可以使用addslashes函数。 试试这个: <?php $str = addslashes('What does "yolo" mean?'); echo($str); ?> 使

我必须将可能包含所有内容的字符串回显到以下html行中:

我不知道如何正确地转义我用php传递的字符串,似乎有很多问题,而且json_encode在用双引号包装输出时不起作用,因为在onclick=之后双引号已经开始

仅仅替换单引号也不起作用,因为\'将被替换为\'

有什么想法吗?

您可以使用addslashes函数。 试试这个:

<?php 
    $str = addslashes('What does "yolo" mean?');
    echo($str); 
?>
使用PHP函数:

<a href="javascript:void()" onclick="function(<?php addslashes($YourParameter) ?>)">...</a>

您可以使用htmlspecialchars包装字符串,这应该可以完成这项工作

<a href="javascript:void()" onclick="function('<?=htmlspecialchars('can"be;anything')?>')">...</a>

由于所有答案都不起作用,我仔细研究了这个问题,并提出了以下解决方案:

function clean_param($string){

  // escapes all single quotes and backslashes
    $single_qu_esc = addcslashes($string, "'\\");

  // escapes the resulting string for html
    return htmlentities($single_qu_esc, ENT_QUOTES);

}

您可以添加您使用示例texttry to use onclick=尝试使用的代码吗?问题不在于在行中回显某些内容。它正在准备我回显的字符串,以便它不会打断onclick=中的字符串。他希望转义引号,而不是使用HTML特殊字符。这会导致他的JSON出现问题…除了JSON,他还会在什么地方使用JSON_encore?遗漏了:只看到了可以包含所有内容的字符串我自己差点遗漏了它,它写得不是很清楚:它不工作,html解析器似乎忽略了双引号前的反斜杠:onclick=function'test\test'>