php过滤输入操作之htmlentities与htmlspecialchars用法分析
发布时间 - 2026-01-10 23:07:08 点击率:次本文实例讲述了php过滤输入操作htmlentities与htmlspecialchars用法。分享给大家供大家参考,具体如下:

过滤输入 (即来自所列数据源中的任何数据)是指,转义或删除不安全的字符。在数据到达应用的存储层之前,一定要过滤输入数据。这是第一道防线。假如网站的评论表单接收html,默认情况下访客可以毫无阻拦地在评论中加入恶意的<script>标签,如下标示:
<p> 我的测试 </p> <script>alert(123)</script>
上面例子。如果不过滤这个评论,恶意代码会存入数据库,然后再网站的标记中渲染。
HTML
我们可以使用htmlentities或者htmlspecialchars函数来过滤html,把特殊字符转换成对应的html实体。
htmlentities这个函数转换所有含有对应“html实体”的特殊字符,比如货币表示符号欧元英镑等、版权符号等,htmlspecialchars 只是把某些特殊的字符转义了, & " ' < >
这2个函数比较傻,默认是不会转义单引号的
$str='<a href="test.html" rel="external nofollow" >\'测试页面\'</a><script>alert(213)</script>'; //并没有转义单引号 echo $str; echo "<hr/>".PHP_EOL; echo htmlentities($str); echo "<hr/>".PHP_EOL; echo htmlspecialchars($str);
需要设置第2个参数 ENT_QUOTES,具体可以看php手册
echo htmlentities($str,ENT_QUOTES,'UTF-8'); //单引号也转义 echo "<hr/>".PHP_EOL; echo htmlspecialchars($str,ENT_QUOTES,'UTF-8');//单引号也转义
以上例子并不能区别出htmlentities和htmlspecialchars ,下面换上一些特殊的字符,如欧元等。htmlentities将会对此转义,htmlspecialchars却不会
echo htmlentities('€ <>"').PHP_EOL;
echo "<hr/>".PHP_EOL;
echo htmlspecialchars('€ <>"').PHP_EOL; //€没有转义
结论:做一般表单提交的时候完全可以用strip_tags去除html标签,如果涉及到富文本编辑器需要保留html标签,可以用htmlspecialchars对提交数据进行过滤。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
# php
# 过滤输入
# htmlentities
# htmlspecialchars
# php htmlentities和htmlspecialchars 的区别
# php 去除html标记--strip_tags与htmlspecialchars的区别详解
# php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
# PHP关于htmlspecialchars、strip_tags、addslashes的解释
# php htmlspecialchars()与shtmlspecialchars()函数的
# php htmlspecialchars加强版
# PHP htmlspecialchars() 函数实例代码及用法大全
# PHP htmlspecialchars_decode()函数用法讲解
# PHP htmlspecialchars()函数用法与实例讲解
# php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
# 单引号
# 程序设计
# 可以用
# 表单
# 这是
# 特殊字符
# 相关内容
# 将会
# 是指
# 感兴趣
# 访客
# 给大家
# 然后再
# 或删除
# 可以使用
# 并不能
# 涉及到
# 转换成
# 更多关于
# 所述
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何为不同团队 ID 动态生成多个非值班状态按钮
如何在VPS电脑上快速搭建网站?
如何在IIS服务器上快速部署高效网站?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
简单实现Android文件上传
大同网页,大同瑞慈医院官网?
如何续费美橙建站之星域名及服务?
详解CentOS6.5 安装 MySQL5.1.71的方法
lovemo网页版地址 lovemo官网手机登录
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
jQuery validate插件功能与用法详解
如何在腾讯云免费申请建站?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
如何快速生成ASP一键建站模板并优化安全性?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
JavaScript常见的五种数组去重的方式
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
LinuxShell函数封装方法_脚本复用设计思路【教程】
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Laravel如何处理表单验证?(Requests代码示例)
Android自定义控件实现温度旋转按钮效果
如何在Windows环境下新建FTP站点并设置权限?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
香港服务器如何优化才能显著提升网站加载速度?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
企业网站制作这些问题要关注
如何获取上海专业网站定制建站电话?
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel如何为API编写文档_Laravel API文档生成与维护方法
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
免费网站制作appp,免费制作app哪个平台好?
如何快速搭建自助建站会员专属系统?
中国移动官方网站首页入口 中国移动官网网页登录
移动端脚本框架Hammer.js
如何用VPS主机快速搭建个人网站?
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
Python制作简易注册登录系统

