`
dch1287
  • 浏览: 119681 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

有关PHP、HTML单引号、双引号转义以及转成HTML实体的那些事!

    博客分类:
  • Web
阅读更多
有关PHP、HTML单引号、双引号转义以及转成HTML实体的那些事!


一、单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单、双引号;
先说几个PHP函数:
1、addslashes — 使用反斜线引用(转义)字符串;
  返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
2、stripslashes — 去掉字符串的反斜杠引用(转义)
  即同addslashes()做相反的工作;
3、get_magic_quotes_gpc --- 检测魔术引用变量是否开启,倘若开启返回1,为开启则返回0;
if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname' ];
}
echo $lastname; 
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";

二、谈转义实体问题:
我们经常会遇到关于留言板之类的可以让用户输入信息的地方,这些地方都是需要注意的,因为不做转实体之类的话,html代码、script脚本可以轻易的被输入保存,并被其他用户执行;
所以类似用户在输入文本内输入<a href="xxx">hello</a>之类的,我们尽量要屏蔽掉,否则用户会乱搞,比如调CSS样式等,那样,我们页面将一塌糊涂。废话不多说,这里有几个关于PHP转实体的函数需要详细了解:
1、htmlspecialchars() 转义特别的字符为HTML实体;
'&' (ampersand) becomes '&amp;'
'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
''' (single quote) becomes '&#039;' only when ENT_QUOTES is set.
'<' (less than) becomes '&lt;'
'>' (greater than) becomes '&gt;'
2、htmlspecialchars_decode()将实体转成HTML代码,函数1的反函数

3、 htmlentities()这个是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的5个特殊字符!

ref: http://www.cnblogs.com/terryglp/articles/1900503.html
分享到:
评论

相关推荐

    php 防止单引号,双引号在接受页面转义

    您可能感兴趣的文章:简单概括PHP的字符串中单引号与双引号的区别PHP中单引号与双引号的区别分析PHP 单引号与双引号的区别php 输出双引号"与单引号”的方法PHP的单引号和双引号 字符串效率浅谈PHP中单引号和双引号...

    php下防止单引号,双引号在接受页面转义的设置方法

    PHP页面中如果不希望出现以下...PHP中单引号与双引号的区别分析php 输出双引号"与单引号”的方法PHP 单引号与双引号的区别PHP的单引号和双引号 字符串效率php 防止单引号,双引号在接受页面转义分析PHP中单双引号的误区

    php中的单引号、双引号和转义字符详解

    PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。 例如: &lt;?php $name=string; echo 字符串 . '...

    4.5 Python核心基础知识之单引号、双引号、三引号与转义字符串.mp4

    4.5 Python核心基础知识之单引号、双引号、三引号与转义字符串.mp4

    C#转义字符如何输出双引号等

    总结了一些关于C#的转义字符和大家分享,该文件描述的是C#语言,关于一些转义字符的用法

    浅谈oracle中单引号转义

    ORACLE 单引号转义: 在ORACLE中,单引号有两个作用:   1:字符串是由单引号引用   2:转义。  单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解  1.从第二个单引号开始被视为...

    php双引号、单引号的区别.zip

    php中字符串类型标记 双引号、单引号的区别.zip

    替换php字符串中的单引号为双引号的方法

    您可能感兴趣的文章:php中的单引号、双引号和转义字符详解PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠浅谈PHP中单引号和双引号到底有啥区别呢?PHP中单引号与双引号的区别分析php 输出双引号"与单引号”的...

    简单概括PHP的字符串中单引号与双引号的区别

    单引号支持\转义符,双引号支持的转义符更多 。 $hello= 3; echo "hello is $hello"; // 打印结果:hello is 3 echo 'hello is $hello'; // 打印结果: hello is $hello echo "hello is $hello\n"; // 打印结果: ...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    Spring MVC下彻底解决@ResponseBody转义html特殊字符问题,解决包括尖角号(),单引号('),双引号("),按位与(&),反斜杠(\)。

    HTML & XML 转义字符

    " 双引号 &nbsp; 空格 &copy; © 版权符 &reg; ® 注册符  前者为字符转义序列,后者为数字转义序列。数字转为字符对应的ASCII码值。例如 & lt; font &gt;显示为,,若直接写为则被认为是一个链接签。  ...

    PHP中单引号与双引号的区别分析

    单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。 &lt;?php $str1 = '\',\\,\r\n\t\v\$...

    python里的单引号和双引号的有什么作用

    在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? python单引号和双引号的区别 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串。但是这两种通用的...

    Shell脚本字符串单引号和双引号的区别浅析

    •单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号 代码如下: your_name=’qinjx’ str=”Hello, I know your are \”$your_name\”! \n” 双引号的优点: •双引号里可以有

    浅谈PHP中单引号和双引号到底有啥区别呢?

    而单引号串中的内容总被认为是普通字符,因此单引号中的内容不会被转义效率更高。 比如: 复制代码 代码如下: $str=’hello’; echo “str is $str”; //运行结果: str is hello echo ‘str is $str’; //运行结果: ...

    python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算

    字符串有多种表现形式:单引号、双引号和三引号,且这些字符串的表现形式(单、双、三)都必须是成对出现的。 单、双引号是英文的:‘’和””,三引号则是三个单引号或者三个双引号都可以:””” “””或者”’ ...

    html中常用的转义字符总结

     双引号" &copy; 版权符号:copyright: &reg; 已注册商标:registered: &trade; 商标(美国)TM &times; 乘号 × &divide; 除号÷  注意: 1、转义字符各字符之间不能出现空格。  2、转义字符必须以";"结束。...

Global site tag (gtag.js) - Google Analytics