PHP引号前添加反斜杠、去除反斜杠的方法

发布时间:2020-01-31编辑:脚本学堂
本文介绍下,在php中引号前添加反斜杠的原因,以及去除反斜杠的方法,有兴趣的朋友可以参考下。

本节主要内容:
php引号前的反斜杠问题

PHP实现的读写html文档的小程序,提交内容保存时会自动在双引号前面增加一个反斜杠“”,而且每保存一次增加一个反斜杠。

原因:
PHP程序为了防止注入或者溢出,通过PHP 指令 magic_quotes_gpc自动在双引号、单引号、反斜杠、NULL前面添加反斜杠“”。

但是,为了读写html文档,里面自然有很多引号和双引号,此时需要去掉添加的反斜杠。
默认PHP 指令 magic_quotes_gpc是on的,也就是打开的。
这时则可以用stripslashes() 函数删除自动添加的反斜杠。

用法:比如包含字符串的变量是$str,那么就用stripslashes() 函数处理一下这个字符串:stripslashes($str),输出的结果就是去掉反斜杠的。
于是,就把读取的字符串内容用stripslashes()函数处理一下,即$str=stripslashes($str),再保存,上传网站之后正常了。

此时,出现了另外一个问题:
因为本地PHP 指令 magic_quotes_gpc是off的,如果用这个函数的话,就会把本来正常的反斜杠也去掉了。
解决办法:
使用函数 get_magic_quotes_gpc() 进行检测,如果是打开的状态,那么就去除反斜杠,如果是关闭的状态,则不去除反斜杠。

代码:
 

复制代码 代码示例:
<?php
$str=$_POST["str"];//读取str的内容赋值给$str变量
if(get_magic_quotes_gpc())//如果get_magic_quotes_gpc()是打开的
{
$str=stripslashes($str);//将字符串进行处理
}
 

修改之后,php程序在本地与网站上测试均正常了。
相关阅读 :
php引号前添加反斜杠(PHP去除反斜杠)的方法