php函数蛮多的,要完整的每个函数都理解深刻是个挺有挑战性的事情。

strip_tags,htmlspecialchars,htmlentities,stripslashes,addslashes这几个函数我想就需要专门的强化一下。

第一个函数:strip_tags,去掉 HTML 及 PHP 的标记

注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串。若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误。而本函数和 fgetss() 有着相同的功能。fgetss是从文件中读取文件,并去掉html和php标记。

我们看一个例子:

PHP代码
  1. $str='
  2. 博客小子,BlogGuy,wayswang" />
  3. <link rel="alternate" title="BlogGuy" href="rss.php" type="application/rss+xml" />
  4. <link rel="stylesheet" href="templates/default/style.css" type="text/css" media="all" />
  5. <link rel="stylesheet" href="include/code.css" type="text/css" media="all" />
  6. <script type="text/javascript">
  7. var postminchars = parseInt("
  8. ';
  9. echo(strip_tags($str,100));

返回的结果是

可见虽然去除了html代码,但是空格格式之类的并没有去掉。

网上找到一个函数,但是我个人不是很满意,权作记录。

PHP代码
  1. unction cutstr_html($string, $sublen)
  2. {
  3. $string = strip_tags($string);
  4. $string = preg_replace ('/\n/is', '', $string);
  5. $string = preg_replace ('/ | /is', '', $string);
  6. $string = preg_replace ('/ /is', '', $string);
  7. preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $string, $t_string);
  8. if(count($t_string[0]) - 0 > $sublen) $string = join('', array_slice($t_string[0], 0, $sublen))."…";
  9. else $string = join('', array_slice($t_string[0], 0, $sublen));
  10. return $string;
  11. }

第二个函数:htmlspecialchars, 将特殊字元转成 HTML 格式

详细说本函数会转化一下字符

& (和) 转成 &amp; 
" (双引号) 转成 &quot; 
< (小于) 转成 &lt; 
> (大于) 转成 &gt; 
例子:
PHP代码
  1. $str='
  2. BlogGuy" />&&<"
  3. ';
  4. echo(htmlspecialchars($str));
返回结果:

BlogGuy&quot; /&gt;&amp;&amp;&lt;&quot;
可见,本函数只转换以上4个字符,其他html标记是不转换的。所以康盛的uchome里面提供了另外一个函数可以选择
PHP代码
  1. //取消HTML代码
  2. function shtmlspecialchars($string) {
  3. if(is_array($string)) {
  4. foreach($string as $key => $val) {
  5. $string[$key] = shtmlspecialchars($val);
  6. }
  7. } else {
  8. $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
  9. str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
  10. }
  11. return $string;
  12. }

第三个函数:htmlentities,将所有的字元都转成 HTML 字串

可能你还在遗憾htmlspecialchars只能处理4个html标记,现在你不要遗憾了,htmlentities是转化全部字符。不可无不强大,但是在我看来意义不大。

PHP代码
  1. $str='
  2. BlogGuy" />&&<##博客小子"
  3. ';
  4. echo(htmlentities($str));

返回结果

选择的理由是什么呢?

看源代码完全不知所云嘛!

第四个函数:stripslashes与addslashes本是一对,addslashes是使用反斜线引用字符串,stripslashes是还原addslashes引用的字符串。

该函数一般都是数据库查询之前就需要处理的必要步骤,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

看看例子吧

PHP代码
  1. $str='
  2. BlogGuy" />&&<##博客小子\\\"
  3. ';
  4. echo(addslashes($str));

结果

转载于:https://www.cnblogs.com/doseoer/p/4244173.html

php的strip_tags,htmlspecialchars,htmlentities,stripslashes,addslashes解释相关推荐

  1. PHP的转义函数 htmlspecialchars、strip_tags、addslashes解释

    第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大 ...

  2. PHP的htmlspecialchars、strip_tags、addslashes解释

    2019独角兽企业重金招聘Python工程师标准>>> 第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP ...

  3. PHP中 htmlspecialchars,htmlentities, nl2br函数

    htmlspecialchars 将特殊字符转成 HTML 格式. 语法: string htmlspecialchars(string string); 返回值: 字符串 函数种类: 资料处理 内容 ...

  4. query.php?sl=,stripslashes_deep().?php stripslashes?php stripslashes和addsl

    你是否正在寻找关于stripslashes的内容?让我把最简洁的东西奉献给你: php stripslashes和addslashes的区别 作者: 字体:[ ] 类型:转载 时间:2014-02-0 ...

  5. url存在宽字节跨站漏洞_【XSS漏洞】XSS漏洞相关总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴周五晚上好~ 终于到了XSS漏洞的完结篇啦~~ 感觉本公众号写的最多的就是XSS,现在可以告一段落了... 让我们来看看第一 ...

  6. lamp兄弟连视频笔记

    第一章 1.2 一 分号 结构定义语句 如for(;;){}   if(){}   while(){}... 功能执行语句,需要加";"  如$name = "zhang ...

  7. PHP字符串函数大全

    PHP字符串函数大全 AddSlashes: 字符串加入斜线. bin2hex: 二进位转成十六进位. Chop: 去除连续空白. Chr: 返回序数值的字符. chunk_split: 将字符串分成 ...

  8. 用trie树实现输入提示功能,输入php函数名,提示php函数

    参照刘汝佳的trie树 结构体 #include "stdio.h"#include"stdlib.h"#include"string.h" ...

  9. vim php tab 补全提示

    在vimrc中加入下面这段,把方法名保存在一个文件中引入到字典中 set dictionary+=/home/lucifer/package/PHP_function.txt     set comp ...

最新文章

  1. 【第二组】项目冲刺(Beta版本)第六次每日例会 2017/7/24
  2. [引]VS2005 之 Visual Basic 程序的结构
  3. 【转载】登录PDMS总是切换到Monitor,这是为什么?!
  4. Autofac在项目中应用的体会,一个接口多个实现的情况
  5. 通过IP判断登录地址
  6. seqkit根据基因id_基因家族成员的鉴定/基因在染色体上的位置
  7. php+pdo分页类
  8. LLVM LLD COFF格式分析
  9. 摄像头 RTSP 以及远程管理
  10. 远程给Linux系统更新安装RTX2080ti显卡驱动
  11. Windows平台的网速监控悬浮窗软件
  12. 面试算法高频压轴题——灯泡开关问题
  13. uni-app 报错:代码使用了scss/sass语言,但未安装相应的编译器插件,请前往插件市场安装该插件
  14. 鸿蒙系统概述(HarmonyOS)学习这一篇就够了!
  15. 如果还不知道这些跨境电商软件那你就亏了
  16. 最新韩小韩二次元高清图库api开源PHP网站源码
  17. acwing-Diango项目 (后半)
  18. AGC 自动增益控制
  19. arcgis不闭合线转面_如何将ArcGIS不闭合线转化为面
  20. 第二本书疯狂人类进化史20190623

热门文章

  1. 计算机专业的口号运动会四字,运动会四字口号大全
  2. 学计算机加强技能短文,干货:语文阅读和作文最该提升的7大技能
  3. 【流放之路-第三章】
  4. [附源码]JAVA毕业设计美容院业务管理系统(系统+LW)
  5. 百度地图 点maker在区域判断(圆Circle,多边形polygon,矩形rectangle,线line上)
  6. node-npm 设置淘宝镜像
  7. 【python基础教程】关键字与标识符
  8. QQ测试用例---个人信息模块
  9. 句柄(handle)是什么
  10. 你对成功的欲望,无可阻挡