<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Tue, 10 Mar 2009 02:14:08 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	PHP提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime，这两个函数如果在php.ini设置为ON的时候，就会为我们引用的数据碰到单引号'和双引号"以及反斜线 &#92; 是自动加上反斜线，帮我们自动转译符号，确保数据操作的正确运行，可是我们在php不同的版本或者不同的服务器配置下，有的magic_quotes_gpc和magic_quotes_runtime设置为on，有的又是off，所以我们写的程序必须符合on和off两种情况。那么magic_quotes_gpc和magic_quotes_runtime两个函数有什么区别呢？看下面的说明：<br/><br/>magic_quotes_gpc <br/>作用范围是：ＷＥＢ客户服务端；<br/>作用时间：请求开始是，例如当脚本运行时．<br/><br/><br/>magic_quotes_runtime<br/>作用范围：从文件中读取的数据或执行exec()的结果或是从ＳＱＬ查询中得到的；<br/>作用时间：每次当脚本访问运行状态中产生的数据．<br/>所以<br/><br/>magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据<br/>magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据<br/>例子说明：<br/><div class="code"><br/><br/>$data1 = $_POST&#91;&#039;aaa&#039;&#93;;<br/>$data2 = implode(file(&#039;1.txt&#039;));<br/>if(get_magic_quotes_gpc())&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//把数据$data1直接写入数据库 (自动转译)<br/>&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data1 = addslashes($data1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//把数据$data1写入数据库，用函数(addslashes()转译)<br/>&#125;<br/><br/>if(get_magic_quotes_runtime())&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//把数据$data2直接写入数据库(自动转译)<br/><br/>//从数据库读出的数据要经过一次stripslashes()之后输出stripslashes()的作用是去掉:&#92; ，和addslashes()作用相反<br/>&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data2 = addslashes($data2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//把数据$data2写入数据库<br/><br/>//从数据库读出的数据直接输出<br/>&#125;<br/><br/></div><br/><br/>最关键的区别是就是上面提到的2点:他们针对的处理对象不同<br/>magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据<br/>magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据<br/><br/>在这里顺便在提几个想关联的函数：<br/><br/>set_magic_quotes_runtime():<br/>设置magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtime<br/><br/>get_magic_quotes_gpc():<br/>查看magic_quotes_gpc值.0=关闭.1=打开.<br/><br/>get_magic_quotes_runtime():<br/>查看magic_quotes_runtime值。0=关闭.1=打开.<br/><br/>注意的是没有 set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。<br/>Tags - <a href="http://www.dzhope.com/tags/%25E9%25AD%2594%25E6%25B3%2595%25E5%25BC%2595%25E7%2594%25A8/" rel="tag">魔法引用</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>