有关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 '&'
'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
''' (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '<'
'>' (greater than) becomes '>'
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单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。 例如: <?php $name=string; echo 字符串 . '...
4.5 Python核心基础知识之单引号、双引号、三引号与转义字符串.mp4
总结了一些关于C#的转义字符和大家分享,该文件描述的是C#语言,关于一些转义字符的用法
ORACLE 单引号转义: 在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义。 单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为...
php中字符串类型标记 双引号、单引号的区别.zip
您可能感兴趣的文章:php中的单引号、双引号和转义字符详解PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠浅谈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 MVC下彻底解决@ResponseBody转义html特殊字符问题,解决包括尖角号(),单引号('),双引号("),按位与(&),反斜杠(\)。
" 双引号 空格 © © 版权符 ® ® 注册符 前者为字符转义序列,后者为数字转义序列。数字转为字符对应的ASCII码值。例如 & lt; font >显示为,,若直接写为则被认为是一个链接签。 ...
单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。 <?php $str1 = '\',\\,\r\n\t\v\$...
在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? python单引号和双引号的区别 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串。但是这两种通用的...
•单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号 代码如下: your_name=’qinjx’ str=”Hello, I know your are \”$your_name\”! \n” 双引号的优点: •双引号里可以有
而单引号串中的内容总被认为是普通字符,因此单引号中的内容不会被转义效率更高。 比如: 复制代码 代码如下: $str=’hello’; echo “str is $str”; //运行结果: str is hello echo ‘str is $str’; //运行结果: ...
字符串有多种表现形式:单引号、双引号和三引号,且这些字符串的表现形式(单、双、三)都必须是成对出现的。 单、双引号是英文的:‘’和””,三引号则是三个单引号或者三个双引号都可以:””” “””或者”’ ...
双引号" © 版权符号:copyright: ® 已注册商标:registered: ™ 商标(美国)TM × 乘号 × ÷ 除号÷ 注意: 1、转义字符各字符之间不能出现空格。 2、转义字符必须以";"结束。...