浅析PHP中处理HTML特殊字符转换

简介: 本文我们一起学习了解了PHP处理HTML中特殊字符的方法。对比htmlentities和htmlspecialchars两个PHP函数的功能作用。

我们在用PHP处理页面显示内容时,经常会遇到一些特殊字符转换问题,如果处理不当就会导致页面显示混乱,不能得到目标效果。所以本文我们将和大家一起归纳总结PHP中处理HTML特殊字符转换的常用方法。

HTML实体字符

我们知道HTML中有许多特殊的预留字符不能直接输出到浏览器,必须把它们替换为相应的实体字符才可以正常显示,比如空格、<、>等。


HTML常用字符实体一览:


图片来源:http://www.w3school.com.cn/html/html_entities.asp

我们在写HTML代码时,可以直接在代码中将想显示的特殊字符写成实体字符:


<html>
<head>
 <meta charset="utf-8">
</head>
<body>
<h3>HTML中超链接a标签是这个样子的:</h3>
<p>&lt;a href=&#039;http://www.chanzhi.org&#039;&gt;蝉知企业门户系统&lt;/a&gt;</p>

</body>
</html>


显示效果如下:


htmlentities()

在写PHP代码时,不能在字符串中直接写实体字符,PHP提供了一个将HTML特殊字符转换成实体字符的函数 htmlentities()

注:htmlentities()并不能转换所有的特殊字符,是转换除了空格之外的特殊字符,且单引号和双引号需要单独控制(通过第二个参数)。

第二个参数有三个值:

ENT_COMPAT(默认值):只转换双引号。

ENT_QUOTES:两种引号都转换。

ENT_NOQUOTES:两种引号都不转换。

(没有只转换单引号的参数选项)


<?php
$str = "<a href='http://www.chanzhi.org'>蝉知企业门户系统©</a>";

//使用htmlentities()函数将特殊字符转换为实体字符
$str2 = htmlentities($str);

echo $str2;
?>


运行后前台显示特殊字符正常,右击查看页面源代码,可以看到PHP转换后的实体字符内容。



前台浏览器显示


查看页面源代码


htmlspecialchars()

htmlspecialchars()函数只对HTML语法字符进行转换,目的是避免这些特殊的字符扰乱HTML代码。
这里说的 HTML语法字符 只有5个:

显示结果 描述 实体名称
< 小于号 &lt;
> 大于号 &gt;
& 和号 &amp;
" 双引号 &quot;
' 单引号  &apos;

htmlspecialchars()将其转换成与其对应的实体字符。

我们还是以上面代码为例,对比htmlentities和htmlspecialchars查看下效果:


<?php
$str = "<a href='http://www.chanzhi.org'>蝉知企业门户系统©</a>";

//使用htmlspecialchars()函数将特殊字符转换为实体字符
$str2 = htmlspecialchars($str);

echo $str2;
?>


运行效果如下:

前台浏览器显示

查看页面源代码


可以看到,htmlspecialchars只对上面5个特殊语法字符其作用,其他的特殊字符不进行转换。


小结:

本文我们一起学习了解了PHP处理HTML中特殊字符的方法。对比htmlentities和htmlspecialchars两个PHP函数的功能作用。如果大家对于字符处理还有其他疑问,欢迎和大家一起分享交流,我们共同学习,共同交流,共同进步。



1Q1XhE8k5UtKFF.gif更多技术文章,欢迎关注『网站建设运维百科』
6a74ef7f96511a3ffb28b690ebaa4e8536067a10
目录
相关文章
HTML输出特殊字符详细方法
以下是部分特殊字符代码表,它们的完整应用代码格式为:`&#××××;`用下面的四位数字替换×,将得到对应的符号。(注意:应用这些代码,编辑器应该切换到HTML模式)
|
3天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
4月前
|
前端开发 JavaScript 安全
【网络安全/前端XSS防护】一文带你了解HTML的特殊字符转义及编码
【网络安全/前端XSS防护】一文带你了解HTML的特殊字符转义及编码
149 0
|
1月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
HTML常用的特殊字符大全
以下的页面中,罗列出了很多类别各式各样的特殊字符,通常你可以直接复制它们直接使用。
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
|
3月前
|
Shell PHP
php案例:截取sy.66969.cn/sh.html中的sh怎么做?
php案例:截取sy.66969.cn/sh.html中的sh怎么做?
php案例:截取sy.66969.cn/sh.html中的sh怎么做?
|
3月前
|
存储 移动开发 前端开发
(2)需要的html典例以及PHP基础
(2)需要的html典例以及PHP基础
34 0
(2)需要的html典例以及PHP基础
|
8月前
HTML中的特殊字符
HTML中的特殊字符
33 0
|
4月前
|
数据采集 监控 JavaScript
巧用简单工具:PHP使用simple_html_dom库助你轻松爬取JD.com
本文将介绍如何使用PHP语言和一个简单的第三方库simple_html_dom来爬取JD.com的商品信息。simple_html_dom是一个轻量级的HTML解析器,它可以方便地从HTML文档中提取元素和属性,而无需使用正则表达式或DOM操作。本文将通过一个实例来展示如何使用simple_html_dom库来爬取JD.com的商品名称、价格、评分和评论数,并将结果保存到CSV文件中。本文还将介绍如何使用代理IP技术来避免被目标网站封禁或限制。
巧用简单工具:PHP使用simple_html_dom库助你轻松爬取JD.com