我想给DIV一个文字。这个文本有HTML标签,所以我认为它足以逃避“和”字符。完整代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
</head>
<body>
<div id="lay">.</div>
<?php
$a = 'Missing<hr />argument 3 for Class::method(), called in X:\directory\dir2\dir3\x';
$a = str_replace(array("\"", "'"), array(""", '''), $a);
?>
<script type="text/javascript">
document.getElementById('lay').innerHTML = '<?php echo $a; ?>';
</script>
</body>
</html>
但是Firefox表示其格式不正确。甚至htmlspecialchars()也不起作用。如何逃脱这根弦?为什么失败?
答案 0 :(得分:3)
像这样使用addslashes
:
$a = 'Missing<hr />argument 3 for Class::method(), called in X:\directory\dir2\dir3\x';
$a = addslashes($a);
$a = str_replace(array("\"", "'"), array(""", '''), $a);
在需要的字符之前返回带反斜杠的字符串 引用数据库查询等。这些字符是单引号('), 双引号(“),反斜杠()和NUL(空字节)。
答案 1 :(得分:1)
你字符串末尾的“\ x”现在试图期望你需要一个十六进制数字来逃避x前面的斜线。
尝试添加三个斜杠
$a = 'Missing<hr />argument 3 for Class::method(), called in X:\directory\dir2\dir3\\\x';
答案 2 :(得分:1)
我得到了解决方案。 我在浏览器中使用物理路径显示图像: “d:/wamp/www/project/images/imag.png”
- &GT;格式错误的Unicode字符转义序列
我将其设置为网址,然后解决了我的问题 的 “http://siteurl/images/imag.png”