PHP程序在引号前自动加反斜杠的原因与处理办法
2015-08-15 09:21
537 查看
为wordpress后台添加统计代码控制功能时,发现凡是提交到数据库的内容中只要是带有单引号或者双引号的内容时,后面都会增加一个反斜杠。而且每保存一次增加一个反斜杠,很是郁闷。
从网上搜了一下原来是PHP程序为了防止注入或者溢出,通过PHP 指令 magic_quotes_gpc自动在双引号、单引号、反斜杠、NULL前面添加反斜杠“”。
统计代码中自然是会带有很多反斜杠的内容,这时候就要去掉添加的反斜杠。
默认PHP 指令 magic_quotes_gpc是on的,也就是打开的。这时候就可以用stripslashes() 函数删除自动添加的反斜杠。用法就是:比如包含字符串的变量是$str,那么就用stripslashes() 函数处理一下这个字符串:stripslashes($str),输出的结果就是去掉反斜杠的。
于是我就把读取的字符串内容用stripslashes()函数处理一下,即$value=stripslashes($str),再保存。上传网站之后正常了。
但是又出现另外一个问题,那就是因为本地PHP 指令 magic_quotes_gpc是off的,如果用这个函数的话,就会把本来正常的反斜杠也去掉了。这样就不是我们所希望的了。
解决办法就是可以使用函数 get_magic_quotes_gpc() 进行检测,如果是打开的状态,那么就去除反斜杠,如果是关闭的状态,则不去除反斜杠。
程序代码如下:
对指定的函数进行修改于测试,发现斜杠不会再继续添加了。
本文固定链接: http://www.frontopen.com/1354.html
转载请注明: 品味人生 2013年08月30日 于 前端开拓者 发表
从网上搜了一下原来是PHP程序为了防止注入或者溢出,通过PHP 指令 magic_quotes_gpc自动在双引号、单引号、反斜杠、NULL前面添加反斜杠“”。
统计代码中自然是会带有很多反斜杠的内容,这时候就要去掉添加的反斜杠。
默认PHP 指令 magic_quotes_gpc是on的,也就是打开的。这时候就可以用stripslashes() 函数删除自动添加的反斜杠。用法就是:比如包含字符串的变量是$str,那么就用stripslashes() 函数处理一下这个字符串:stripslashes($str),输出的结果就是去掉反斜杠的。
于是我就把读取的字符串内容用stripslashes()函数处理一下,即$value=stripslashes($str),再保存。上传网站之后正常了。
但是又出现另外一个问题,那就是因为本地PHP 指令 magic_quotes_gpc是off的,如果用这个函数的话,就会把本来正常的反斜杠也去掉了。这样就不是我们所希望的了。
解决办法就是可以使用函数 get_magic_quotes_gpc() 进行检测,如果是打开的状态,那么就去除反斜杠,如果是关闭的状态,则不去除反斜杠。
程序代码如下:
$str=$_POST["str"];//读取str的内容赋值给$str变量 if(get_magic_quotes_gpc())//如果get_magic_quotes_gpc()是打开的 { $str=stripslashes($str);//将字符串进行处理 }
对指定的函数进行修改于测试,发现斜杠不会再继续添加了。
本文固定链接: http://www.frontopen.com/1354.html
转载请注明: 品味人生 2013年08月30日 于 前端开拓者 发表
相关文章推荐
- PHP的Undefined variable错误怎么解决?
- php 二进制文件上传
- PHP - 数字计算
- 利用vsftpd拯救崩溃的Ubuntu虚拟机
- FTP服务搭建
- ContentProvider实例
- 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
- 【转】php json_encode中文为空的解决办法
- 为什么我还不推荐内存中OLTP给用户
- ThinkPHP 快速入门
- 从PHP 到JAVA
- yii 框架GridView::widget 检索框
- Yii2学习之ActiveRecord
- 11.PHP 教程_PHP Switch 语句
- php最简单的注入与最简单的避免方式
- 10.PHP 教程_PHP If...Else 语句
- php时间函数分析(转)
- phpDocumentor学习使用记录
- phpDocumentor学习使用记录
- php配置伪静态的方法