PHP
提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime,这两个函数如果在php.ini设置为ON的时候,就会为我们引用的数据碰到单引号'和双引号"以及反斜线 /
是自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行,可是我们在php不同的版本或者不同的服务器配置下,有的magic_quotes_gpc和magic_quotes_runtime设置为on,有的又是off,所以我们写的程序必须符合on和off两种情况。那么magic_quotes_gpc和magic_quotes_runtime两个函数有什么区别呢?看下面的说明:PHPChina 开源社区门户!H |~wrs
PHPChina 开源社区门户e)^2@$XnZ{6dt
,hC$HKq_0PHPChina 开源社区门户 J0c{z/X.b
/*Y`zu+l.^0
所以
#S!y./ S/F,M"l0
!b~7h,`'P{Lz0
例子说明:PHPChina 开源社区门户+`0J3kX@ K:W5r!Ajt
PHPChina 开源社区门户;Qv dH.V-mL
PHPChina 开源社区门户e)^2@$XnZ{6dt
magic_quotes_gpc
uW+ft7sZ&^s0h0作用范围是:WEB客户服务端;
R!xcgyq ?8qu0作用时间:请求开始是,例如当脚本运行时.
uW+ft7sZ&^s0h0作用范围是:WEB客户服务端;
R!xcgyq ?8qu0作用时间:请求开始是,例如当脚本运行时.
,hC$HKq_0PHPChina 开源社区门户 J0c{z/X.b
/*Y`zu+l.^0
magic_quotes_runtimePHPChina 开源社区门户o^3m0o bg.CV
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;PHPChina 开源社区门户"Pcq _/}(uXOR
作用时间:每次当脚本访问运行状态中产生的数据.
PHPChina 开源社区门户vP1vh1SG作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;PHPChina 开源社区门户"Pcq _/}(uXOR
作用时间:每次当脚本访问运行状态中产生的数据.
所以
#S!y./ S/F,M"l0
!b~7h,`'P{Lz0
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据
)V!q6F1a)n0magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据
PHPChina 开源社区门户9u5K9/_e)V!q6F1a)n0magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据
例子说明:PHPChina 开源社区门户+`0J3kX@ K:W5r!Ajt
PHPChina 开源社区门户;Qv dH.V-mL
$data1 = $_POST['aaa'];
l!Rz ])/$R'F0$data2 = implode(file('1.txt'));
q:AW0v m:X7ctR0if(get_magic_quotes_gpc()){
Y;R&s3] M)o(u8u0 //把数据$data1直接写入数据库 (自动转译)PHPChina 开源社区门户W.J ]^0{Iu
}else{PHPChina 开源社区门户FSO)`P
$data1 = addslashes($data1);PHPChina 开源社区门户q.SxKhN{f5C9y0j)o
//把数据$data1写入数据库,用函数(addslashes()转译)
'lL z1wX9i }0}PHPChina 开源社区门户u/0N?NYP9E
PHPChina 开源社区门户kH%c `@:B
if(get_magic_quotes_runtime()){
)l'u2arH gJs0 //把数据$data2直接写入数据库 (自动转译)
-k7Y'O-Gg:l2JA8e0PHPChina 开源社区门户#n;VR"j}!G ]
//从数据库读出的数据要经过一次stripslashes()之后输出 stripslashes()的作用是去掉:/ ,和addslashes()作用相反 PHPChina 开源社区门户1o%i#A}m8[p
}else{PHPChina 开源社区门户+^:HB0VY'SY
$data2 = addslashes($data2);PHPChina 开源社区门户"~K.K:T:M
//把数据$data2写入数据库PHPChina 开源社区门户}%kl&P f"eVh.F[`
PHPChina 开源社区门户-S4Aw{Q)tw&t
//从数据库读出的数据直接输出PHPChina 开源社区门户%R9/*t/R J `
}
Z:h%c-i A HEK/0PHPChina 开源社区门户tC H9P IHHD
最关键的区别是就是上面提到的2点:他们针对的处理 对象不同 PHPChina 开源社区门户1K(U S9f5tGMbq4b
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据PHPChina 开源社区门户^ F#j!C.WQE
magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据PHPChina 开源社区门户J)t ]GF[9i$|
8Q'{.uiVg!J p0在这里顺便在提几个想关联的函数:
/J,v!E*j.o4/T"}l$^2d?0
;Y[,` C7?0f9};y0set_magic_quotes_runtime():PHPChina 开源社区门户zBs4B}
设置 magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtimePHPChina 开源社区门户%K Z9R"Ng~,TC
t/RBg.R wBa,w0 get_magic_quotes_gpc(): PHPChina 开源社区门户 J_E"sV%}-Bh:L
查看 magic_quotes_gpc值. 0=关闭.1=打开.
q E*@&OJ2L;b#m"/g0
M"pL&[ `Z ed0 get_magic_quotes_runtime():PHPChina 开源社区门户'q |4@tsFWX4j3y
查看 magic_quotes_runtime值。 0=关闭.1=打开.PHPChina 开源社区门户 D/1/iw2w.i*Sq
_hygf${ix0注意的是没有 set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。
E wc^a&g WJ~0
l!Rz ])/$R'F0$data2 = implode(file('1.txt'));
q:AW0v m:X7ctR0if(get_magic_quotes_gpc()){
Y;R&s3] M)o(u8u0 //把数据$data1直接写入数据库 (自动转译)PHPChina 开源社区门户W.J ]^0{Iu
}else{PHPChina 开源社区门户FSO)`P
$data1 = addslashes($data1);PHPChina 开源社区门户q.SxKhN{f5C9y0j)o
//把数据$data1写入数据库,用函数(addslashes()转译)
'lL z1wX9i }0}PHPChina 开源社区门户u/0N?NYP9E
PHPChina 开源社区门户kH%c `@:B
if(get_magic_quotes_runtime()){
)l'u2arH gJs0 //把数据$data2直接写入数据库 (自动转译)
-k7Y'O-Gg:l2JA8e0PHPChina 开源社区门户#n;VR"j}!G ]
//从数据库读出的数据要经过一次stripslashes()之后输出 stripslashes()的作用是去掉:/ ,和addslashes()作用相反 PHPChina 开源社区门户1o%i#A}m8[p
}else{PHPChina 开源社区门户+^:HB0VY'SY
$data2 = addslashes($data2);PHPChina 开源社区门户"~K.K:T:M
//把数据$data2写入数据库PHPChina 开源社区门户}%kl&P f"eVh.F[`
PHPChina 开源社区门户-S4Aw{Q)tw&t
//从数据库读出的数据直接输出PHPChina 开源社区门户%R9/*t/R J `
}
Z:h%c-i A HEK/0PHPChina 开源社区门户tC H9P IHHD
最关键的区别是就是上面提到的2点:他们针对的处理 对象不同 PHPChina 开源社区门户1K(U S9f5tGMbq4b
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据PHPChina 开源社区门户^ F#j!C.WQE
magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据PHPChina 开源社区门户J)t ]GF[9i$|
8Q'{.uiVg!J p0在这里顺便在提几个想关联的函数:
/J,v!E*j.o4/T"}l$^2d?0
;Y[,` C7?0f9};y0set_magic_quotes_runtime():PHPChina 开源社区门户zBs4B}
设置 magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtimePHPChina 开源社区门户%K Z9R"Ng~,TC
t/RBg.R wBa,w0 get_magic_quotes_gpc(): PHPChina 开源社区门户 J_E"sV%}-Bh:L
查看 magic_quotes_gpc值. 0=关闭.1=打开.
q E*@&OJ2L;b#m"/g0
M"pL&[ `Z ed0 get_magic_quotes_runtime():PHPChina 开源社区门户'q |4@tsFWX4j3y
查看 magic_quotes_runtime值。 0=关闭.1=打开.PHPChina 开源社区门户 D/1/iw2w.i*Sq
_hygf${ix0注意的是没有 set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。
E wc^a&g WJ~0