php中addslashes(),htmlspecialchars 转

转自http://czf2008700.blog.163.com/blog/static/2397283200937103250194/

addslashes -- 使用反斜线引用字符串

string addslashes ( string str )

返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(‘)、双引号(")、反斜线(\)与 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() 进行检测。


addslashes与stripslashes是php中对数据库的字符进行操作时.
乍一看好像很难记,但是只要分析一下,add是增加,strip是忽略.slash是斜线,slash就是斜线的复数.那么addslashes就是增加斜线的意思,因为有些特殊的字符写入数据库后会出现问题,比如" ‘等,所以要加\给特殊符号转义,告诉数据库那些特殊符号是字符串,同理stripslashes是从数据库取出字符串时就要减去斜线了.

 htmlspecialchars某些特殊字符转换成html的编码,常用到的场合可能就是处理客户留言的留言版了。

这些特殊字符仅限于以下几个:

  • &   ->  &
  • “    ->  "
  • <   ->  &lt;
  • >   ->  &gt;

htmlentities跟htmlspecialchars的功能类似,但是htmlentities是对所有HTML定义的entity都不放过,包括各种特殊字符和中文,这样得出来的结果是中文字符部分变为一堆乱码。

htmlspecialchars_decode是htmlspecialchars的逆向过程,把html的编码转换成字符。

时间: 2024-11-05 04:48:31

php中addslashes(),htmlspecialchars 转的相关文章

python中有关字符串的处理

原文 Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 = 'strcat' sStr2 = 'append' sStr

php htmlentities和htmlspecialchars 的区别

很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的. The translations performed are: 复制代码 代码如下: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. ''' (single quote) becom

php中一些函数的用法

addslashes() 定义和用法 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串. 预定义字符是: 单引号(') 双引号(") 反斜杠(\) NULL 提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串. 注释:默认地,PHP 对所有的 GET.POST 和 COOKIE 数据自动运行 addslashes().所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义.遇到这种情况时可以使用函数 get_magic_quot

开发中GBK+UTF8编码的处理

以前自己开发项目,前后统一,都是utf8,也没出现过什么问题.可是最近,一个小demo暴露出了问题. html页面是gbk,php代码是utf8,数据库又是gbk,这,,,奶奶的,坑了~ 页面有input 的text类型,和textarea ,都是文本输入和显示的. 涉及函数: js:encodeURIComponent() php:urldecode()  addslashes() htmlspecialchars() 解决思路: 1.页面gbk.utf8无所谓,反正都会自动检测.输入字段提交

php安全编程

话不多说,为了确保web内容的安全,这里有一些常规的安全标准准则: 1.不相信表单 攻击表单其实很简单,如果有人在他们的浏览器去关闭了JS功能,你的客户端验证就失败了. 用户在很大程度上都是通过表单和后台进行交互,因此表单是最大的安全风险,围绕着表单产生的攻击很多,像mysql注入攻击,XSS等,我们一定要在后端去验证传递给脚本的数据. 2.不相信任何用户 表单的操纵者,这点无需多言! 3.关闭全局的变量 有时候其实最大的安全漏洞是启用了register_globals配置参数,幸运的是PHP4

php核心知识纲要总结以及学习路线

php介绍 缩写:Personal Home Page ==>>PHP:HypeText Preprocessor 历史 1995PHP/FI,Rasmus Lorderf,Personal Home Page 1997PHP/FI2.0,1998PHP3,2000PHP4,2005PHP5 应用范围: web服务器端脚本 命令行脚本 应用程序图形界面 php运行环境 BS软件模式 浏览器软件若干 web服务器软件若干 后台程序语言若干 web运行流程: 浏览器输入地址,回车(发送请求) 根据

php结合ajax实现简单的无刷新评论

实现的原理其实很简单,我是用的原生js写的,当然用jq封转好的也都一样(下次用jq写个其他的).解析都写在代码里面了: 建表语句: 1 CREATE TABLE `comment` ( 2 `id` int NOT NULL AUTO_INCREMENT COMMENT '主键索引' , 3 `content` text NOT NULL COMMENT '评论内容' , 4 PRIMARY KEY (`id`) 5 )ENGINE=MYISAM DEFAULT CHARSET=UTF8 6 ;

php核心纪要 整理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

ajax结合文件上传类进行多文件的单个上传

今天做项目的时候碰见一个问题:之前一个同事离职之前做了一个网站,有一个上传商品详细图片的功能,当时已经完成,但是由于后期程序的有更改以及更改的程序员的水平也是参差不齐,最后导致程序bug很多,由于当时用的是一个框架,最终也没找到说明文档,后来我就重新写了一个结合ajax上传文件的upload.classs.php虽然界面欠缺美观,但是通俗易懂好维护. //首先是页面. index.php <!DOCTYPE html> <html lang="en"> <