很多站长朋友们都不太清楚关闭php自动转义,今天小编就来给大家整理关闭php自动转义,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP如何去掉转义 2、 如何取消ThinkPHP的自动转义单引号和双引号 3、 php.ini中没有magic_quotes_gpc 4、 php文本域中内容保存后,再次查看后,发现多出了\符号 5、 PHP7如何在php.ini文件中开启自动转义功能? php.ini中不包含magic-quote PHP如何去掉转义string addslashes ( string str) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。
这些字符是单引号(\')、双引号(\")、反斜线(\\)与 NUL(NULL 字符) stripslashes作用相反在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\\(反斜线)和 NULL 字符转移。 PHP称之为魔术引号,这三项设置分别是 magic_quotes_gpc 影响到 HTTP 请求数据(GET,POST 和 COOKIE)。
不能在运行时改变。在 PHP 中默认值为 on。 magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话,将会使用单引号对单引号进行转义而非反斜线。
此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。
虽然方便的实现了对特殊符号的自动转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。使用stripslashes去掉转义
如何取消ThinkPHP的自动转义单引号和双引号这是你php环境配置的问题。 你在你的 common.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);
}
php.ini中没有magic_quotes_gpcini_set('magic_quotes_gpc',0); // 用这个试试。
// ini_set('magic_quotes_gpc', 'Off'); // 或者这个,都一样
php文本域中内容保存后,再次查看后,发现多出了\符号看下是不是php.ini里的magic_quotes_gpc = on 了,如果是的话,要不把这个改掉,要不用stripslashes对文本域传到后台的值进行处理,去掉\
PHP7如何在php.ini文件中开启自动转义功能? php.ini中不包含magic-quote首先说明下magic-quote在PHP5.4版本中就已经废除了。详情请参考:
1. magic_quotes_gpc和magic_quotes_runtime作用
magic_quotes_gpc主要是作用是自动转义GET/POST/COOKIES请求的数据,也就是自动执行 addslashes()。magic_quotes_gpc在5.4版本之前的配置中有两个值,分别是0(关闭)和1(开启),默认配置是1(开启)。
magic_quotes_runtime主要作用是自动转移sql,为了防止恶意攻击获取数据库信息。magic_quotes_runtime在5.4版本前的配置也有两个值,分别是0(关闭)和1(开启),默认配置是0(关闭)。
2. magic_quotes_gpc和magic_quotes_runtime的应用
假设提交过来的数据分别是$datastr= 'aaa'; $datafile= implode(file('demo.txt'));第一个数据是一个字符串,第二个是读取的文件信息,但是你不知道是否安全。就可以使用get_magic_quotes_gpc()和get_magic_quotes_runtime()进行判断。
应用示例
注意:一般来说为了运行效率会将get_magic_quotes_gpc()和get_magic_quotes_runtime()设置成常量进行判断
应用示例
关于关闭php自动转义的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于关闭php自动转义 关闭php自动转义的命令的详细内容...