我有此代码:
<html>
<?php
$var="\'quotes\" àccènts"; // 'quotes" àccènts
?>
<button onclick="fun('<?php echo $var ?>');">click me</button>
</html>
但是当我单击时,在控制台中出现“ Uncaught SyntaxError:Invalid or意外令牌”
我尝试过:
<button onclick="fun('<?php echo $var ?>');">click me</button>
<?php
function escape($var)
{
$var=str_replace("'","\\'",$var);
$var=str_replace("\"",""",$var);
$var=trim(preg_replace("/\s+/"," ",$var));
return $var
}
?>
但是口音变成了未知字符,我该如何用内联html解决这个问题?
答案 0 :(得分:0)
您可以解决它。例如
<script>
function fun2()
{
return fun(<?php echo json_encode($var); ?>);
}
</script>
<button onclick="fun2();">click me</button>
如果您想多次执行此操作,例如在一个字符串列表中的循环中, 您也可以解决此问题(除非您想破坏原始的php字符串),方法是:
<script>
// assuming an array of string variables with quotes and accents
var strings = <?php echo json_encode($strings); ?>;
</script>
<?php for($i=0,$l=count($strings); $i<$l; $i++) { ?>
<button onclick="fun(strings[<?php echo $i; ?>]);">Click me!</button>
<?php } ?>