如何转义HTML中的"<,>"

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何转义HTML中的"<,>"相关的知识,希望对你有一定的参考价值。

我做了一个博客,在作文章时,如果写入html的代码后,就会出错(无法写入到mysql
写入的是“<html>...</html>
<head>...</head>
<body>...</body>
<HTML>
<HEAD>
<title>, <base>, <link>, <isindex>, <meta>
</HEAD>
<BODY>
HTML 文件的正文写在这里... ...
</BODY>
</HTML>


这一段:
简结的:
$_POST["a01"]='<head>...</head>';
$_POST["comment"]='<head>...</head><body>...</body>';

$yfm=mysql_real_escape_string($_POST["a01"]);
$wz=mysql_real_escape_string($_POST["comment"]);//特殊符号的转义,赋值。

$yfmc=htmlspecialchars($yfm,ENT_COMPAT,'GB2312');
$wzc=htmlspecialchars($wz,ENT_COMPAT,'GB2312');

echo $yfmc; //<head>...</head>

echo $wzc; //<head>...</head>\r\n<body>...</body>\r\n

为什么<,>没的得到转义呢?

参考技术A '<' &#lt;
'>' &#gt;
参考技术B "<"换成<
">"换成>
&#前缀一般是文字

表单中用户输入"&lt"等转义字符,保存后数据库是原文保存的,但是查看的时候显示的是"<",如何是的&lt;字符在网页原样显示出来。(代码

其实方法也很简单,替换&为&amp;就行了~

演示如下

 

<?php
$content="<!DOCTYPE html>
<html>
<body>
<?php
echo 我的第一段 PHP 脚本!;
?>
</body>
</html>";
$find="<";
$replace="&amp;lt;";
$findTwo=">";
$replaceTwo="&amp;gt;";
$result=str_replace($find,$replace,$content);
$result=str_replace($findTwo,$replaceTwo,$result);
echo "<textarea rows=\'20\' cols=\'50\'>".$result."</textarea>";
?>

  这时一段PHP代码,使用替换函数str_replace将<替换为&amp;lt; 即可,说白了就是替换&为&amp;即可达到目的

显示效果如下图

 

以上是关于如何转义HTML中的"<,>"的主要内容,如果未能解决你的问题,请参考以下文章

如何让在Html中特殊字符不被转义

js,如何防止特殊字符被转义

jquery 冒号转义 为啥双斜杠

如何转义 HTML 或取消转义 HTML?

XML中的 "<" ">" "&" 怎么转义

表单中用户输入"&lt"等转义字符,保存后数据库是原文保存的,但是查看的时候显示的是"<",如何是的&lt;字符在网页原样显示出来。(代码