PHP在引号前面添加反斜杠(PHP去除反斜杠)


Posted in PHP onSeptember 28, 2013

一般空间商提供的服务器空间默认PHP 指令 magic_quotes_gpc是on的,也就是打开的。这时候就可以用stripslashes() 函数删除自动添加的反斜杠。用法就是:比如包含字符串的变量是$str,那么就用stripslashes() 函数处理一下这个字符串:stripslashes($str),输出的结果就是去掉反斜杠的。

如果遇到输出的结果中包含反斜杠的,可对输出内容用stripslashes()函数处理一下,即$str=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);  //将字符串进行处理 
 }

本文于2012年4月25日10:08:03修订如下:

下面介绍三种方法解决这个问题:

1、修改PHP配置文件php.ini
 
这种方法只适于自己有权管理服务器的情况下,如果用的虚拟空间,那就只能采用后两条方法。

在PHP配置文件php.ini中将magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase全部设为off。如下所示:

magic_quotes_gpc = Off 
magic_quotes_runtime = Off 
magic_quotes_sybase = Off

2 利用.htaccess文件
 
该方法只在服务器支持htaccess的情况下,现在的服务器一般都会支持的

在程序目录下.htaccess文件中增加下面一句:

php_flag magic_quotes_gpc Off

3 在代码中屏蔽
 
该方法是移植性最强的,不用考虑服务器的配置,只要支持PHP就可以使用。

在所有PHP文件开始处增加下面代码

 if(get_magic_quotes_gpc()){ 
     function stripslashes_deep($value){ 
         $value=is_array($value)?array_map('stripslashes_deep',$value):stripslashes($value); 
         return $value; 
     } 
     $_POST=array_map('stripslashes_deep',$_POST); 
     $_GET=array_map('stripslashes_deep',$_GET); 
     $_COOKIE=array_map('stripslashes_deep',$_COOKIE); 
     $_REQUEST=array_map('stripslashes_deep',$_REQUEST); 
 }
PHP 相关文章推荐
谈谈PHP语法(2)
Oct 09 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
PHP @ at 记号的作用示例介绍
Oct 10 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PDO::errorCode讲解
Jan 28 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
Dec 15 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 #PHP
PHP无限分类(树形类)
Sep 28 #PHP
PHP的PSR规范中文版
Sep 28 #PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 #PHP
php中time()和mktime()方法的区别
Sep 28 #PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 #PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 #PHP
You might like
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
php jsonp单引号转义
2014/11/23 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
详解python eval函数的妙用
2017/11/16 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
销售业务实习自我鉴定
2013/09/23 职场文书
毕业生在校学习的自我评价分享
2013/10/08 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
竞聘演讲稿
2014/04/24 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
召开会议通知范文
2015/04/15 职场文书
Python实现归一化算法详情
2022/03/18 Python