1. html_entity_decode():把html实体转换为字符。
$str = "just atest & 'learn to use '";
echo html_entity_decode($str);
echo "<br />";
echo html_entity_decode($str,ENT_QUOTES);
echo "<br />";
echo html_entity_decode($str,ENT_NOQUOTES);

输出如下:

just a test & 'learn to use '
just a test & 'learn to use '
just a test & 'learn to use '
  1. htmlentities():把字符转换为html实体。
$str = "just a test & 'learn to use'";
echo htmlentities($str,ENT_COMPAT);
echo "<br/>";
echo htmlentities($str, ENT_QUOTES);
echo "<br/>";
echo htmlentities($str, ENT_NOQUOTES);

输出如下:

just a test & 'learn to use'
just a test & 'learn to use'
just a test & 'learn to use'

查看源代码如下:

just a test & 'learn to use'<br />
just a test & 'learn to use'<br />
just a test & 'learn to use'
  1. addslashes():在指定的预定义字符前添加反斜杠

预定义字符包括:单引号(‘),双引号(“),反斜杠(),NULL

默认情况下,PHP指令 magic_quotes_gpc 为 on,对所有的GET、POST 和COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数get_magic_quotes_gpc() 进行检测。

$str3="\ just a  '  \" test";
echo addslashes($str3);

输出:

\\ just a \' \" test
  1. stripslashes():删除由addslashes函数添加的反斜杠
$str4="\\ just a \'\" test";
echo stripslashes($str4);

输出:

just a ' " test
  1. htmlspecialchars():把一些预定义的字符转换为html实体。
预定义字符包括:& (和号) 成为&
 " (双引号) 成为"
' (单引号) 成为'
< (小于) 成为<
> (大于) 成为>

$str5 = "just atest & 'learn to use'";
echo htmlspecialchars($str5, ENT_COMPAT);
echo "<br/>";
echo htmlspecialchars($str5, ENT_QUOTES);
echo "<br/>";
echo htmlspecialchars($str5, ENT_NOQUOTES);

输出:

just a test & 'learn to use'
just a test & 'learn to use'
just a test & 'learn to use'

查看源代码:

just a test & 'learn to use'<br />
just a test & 'learn to use'<br />
just a test & 'learn to use'
  1. htmlspecialchars_decode():把一些预定义的html实体转换为字符。
会被解码的html实体包括:& 成为 &(和号)
 " 成为 " (双引号)
 ' 成为 ' (单引号)
 < 成为 < (小于)
 > 成为 > (大于)

	$str6 = "just atest & 'learn to use'";
	echo htmlspecialchars_decode($str6);
	echo "<br />";
	echo htmlspecialchars_decode($str6, ENT_QUOTES);
	echo "<br />";
	echo htmlspecialchars_decode($str6, ENT_NOQUOTES);

输出:

just a test & 'learn to use '
just a test & 'learn to use '
just a test & 'learn to use '

查看源代码:

just a test & 'learn to use '<br />
just a test & 'learn to use '<br />
just a test & 'learn to use '
  1. 防注入防web脚本综合使用:
$str= htmlspecialchars(addslashes($str));
$str= htmlspecialchars_decode(stripslashes($str));

声明:本文为转载文章,为防止丢失所以做此备份。

原文地址:https://www.jb51.net/article/99548.htm

浅谈htmlentities 、htmlspecialchars、addslashes的使用方法的更多相关文章

  1. 【ASP.NET MVC系列】浅谈表单和HTML辅助方法

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

  2. 浅谈js分页的几种方法

    一个项目中必然会遇到分页这种需求的,分页可以使数据加载更合理,也让页面显示更美观,更有层次感!那么js分页到底如何实现呢?下面我就来讲一下三种循序渐进的方法 1.自己纯手写分页 更深入的去理解分页的意 ...

  3. 浅谈Vue响应式(数组变异方法)

    很多初使用Vue的同学会发现,在改变数组的值的时候,值确实是改变了,但是视图却无动于衷,果然是因为数组太高冷了吗? 查看官方文档才发现,不是女神太高冷,而是你没用对方法. 看来想让女神自己动,关键得用 ...

  4. 浅谈XSS攻击原理与解决方法

    概述 XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人 ...

  5. 浅谈人脸检测之Haar分类器方法

    我们要探讨的Haar分类器实际上是Boosting算法(提升算法)的一个应用,Haar分类器用到了Boosting算法中的AdaBoost算法,只是把AdaBoost算法训练出的强分类器进行了级联,并 ...

  6. 浅谈JavaScript中的string拥有方法的原因

    我们都知道,JavaScript数据类型分两大类,基本类型(或者称原始类型)和引用类型. 基本类型的值是保存在栈内存中的简单数据段,它们是按值访问的.JS中有五种基本类型:Undefined.Null ...

  7. 浅谈Java多线程中的join方法

    先上代码 新建一个Thread,代码如下: package com.thread.test; public class MyThread extends Thread { private String ...

  8. shell实例浅谈之一产生随机数七种方法

    一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产 ...

  9. (转)shell实例浅谈之产生随机数七种方法

    一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产 ...

随机推荐

  1. windows下Keras框架搭建

    1. 安装Anaconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ conda info来查询安装信息 conda list可以查 ...

  2. Core Graphics框架 利用Quartz 2D绘图

    首先,什么是Core Graphics和Quartz 2D? Core Graphics:是基于Quartz 2D绘图引擎的一个C语言的API绘图框架.它也是iOS开发中最基本的框架(Framewor ...

  3. Eclipse中使用GIT提交文件至本地

    GIT提交文件至本地: 1.  右击项目——Team——Commit…: 2.在弹出的Commit Changes框中——选择要提交的文件——填写提交说明——点击Commit,即可提交至本地.

  4. 路飞学城Python-Day24(practise)

    本章总结 练习题 什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件)

  5. C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

  6. JavaFX 的 UI 控件集 ControlsFX

    出处:http://www.oschina.net/p/controlsfx JavaFX 的 UI 控件集 ControlsFX ControlsFX 开源项目旨在为 JavaFX 开发提供更多的 ...

  7. 首页 > 所有书 > 操作系统 > Linux >

    http://book.51cto.com/col/1213/list_1213_8.htm linux一些经典教材

  8. W10子系统UBantu命令安装Redis及其启动

    W10子系统UBantu命令安装Redis及其启动 打开W10子系统UBantu 安装Redis $sudo apt-get install redis-server 启动Redis redis-se ...

  9. Linux配置nignx虚拟主机

    Nginx 是一个轻量级高性能的 Web 服务器, 并发处理能力强, 对资源消耗小, 无论是静态服务器还是小网站, Nginx 表现更加出色, 作为 Apache 的补充和替代使用率越来越高. 我在& ...

  10. MD5加密技术

    前几天,在看OpenVXI3.4的时候,偶然发现了几个奇怪的文件,那就是OpenVXI-3.4\src\cache下面的,base64.c,base64.h,md5.c,md5.h.既然有人把源代码给 ...