如何逃避此字符串或者我应该将字符'"); " ' (; '") ;
放在此html元素上
<img src='<?=$this->webroot;?>img/document-note.png' onmouseover="tooltip.pop(this,'<?=$finalNote;?>')" />
$finalNote
变量等于'"); " ' (; '") ;
此值。
我尝试过这样做:
$finalNote = str_replace('"','\"',$finalNote);
$finalNote = str_replace("'","\'",$finalNote);
输出结果如下:
<img ;')"="" \'\")="" (;="" \'="" \"="" );="" onmouseover="tooltip.pop(this,' \'\" src="/img/document-note.png">
我的代码没有意义(我知道^ _ ^)
我也试过用这个:
$finalNote = htmlspecialchars($finalNote);
输出就是这个:
<img onmouseover="tooltip.pop(this,' '"); " ' (; '") ;')" src="/img/document-note.png">
这仍然是错误的,因为当我将图像悬停在我拥有它时会给我这个错误:
我的问题是如何正确地逃避这些值,以便我可以在<img onmouseover="tooltip.pop(this,' '"); " ' (; '") ; ')" />
上呈现这些值而不会出现这些错误。
您的帮助将受到极大的限制!谢谢!
答案 0 :(得分:1)
<?php
$finalNote = " '\"); \" ' (; '\") ;";
$finalNote = htmlspecialchars(addslashes($finalNote), ENT_QUOTES);
?>
<script>
var tooltip = {
pop: function(obj, note) {
console.log(obj);
console.log(note);
}
};
</script>
<img src='img/document-note.png' onmouseover="tooltip.pop(this,'<?=$finalNote;?>');" />
答案 1 :(得分:1)
您正在将字符串输出到Javascript中,因此首先需要确保它是有效的Javascript语法。然后将此Javascript输出到HTML中,因此您需要确保它是正确的HTML。所以你要看两个编码步骤:
htmlspecialchars(json_encode($string))
更确切地说:
htmlspecialchars(sprintf('tooltip.pop(this, %s)', json_encode($finalNote)))
现在这是onmouseover="..."
的正确转义内容。