<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>蜗牛的牛窝 &#187; PHP基础知识</title>
	<atom:link href="http://www.woniu.us/category/php_basic/feed" rel="self" type="application/rss+xml" />
	<link>http://www.woniu.us</link>
	<description>php开发、PHP程序分析、Python程序设计、心情随笔</description>
	<lastBuildDate>Mon, 09 Aug 2010 13:44:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP处理excel乱码问题</title>
		<link>http://www.woniu.us/php_basic/367.html</link>
		<comments>http://www.woniu.us/php_basic/367.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 04:57:45 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php乱码]]></category>
		<category><![CDATA[php编码]]></category>

		<guid isPermaLink="false">http://www.woniu.us/?p=367</guid>
		<description><![CDATA[这两天处理csv文件的乱码问题都给整疯了，到网上搜了几圈，基本上都是胡扯瞎蒙的。有说将utf-8转换为gbk的，有说将utf-8转换为ascii 的，也有说将unnicode转换为utf-8的。结果害我浪费 了大量光阴]]></description>
			<content:encoded><![CDATA[<p>这两天处理csv文件的乱码问题都给整疯了，到网上搜了几圈，基本上都是胡扯瞎蒙的。有说将utf-8转换为gbk的，有说将utf-8转换为ascii的，也有说将unnicode转换为utf-8的。结果害我浪费 了大量光阴。</p>
<p>于是只好靠自己了，用editplus打开cvs文件，看到的是unicode编码，用iconv(&#8216;unicode&#8217;,'UTF-8&#8242;, $content); 还是不管用，于是索性用file_get_contents读取出cvs文件并输出，然后看到是乱码，于是在浏览器上不断的改变编码，终于看到了正确的汉字了，原来excel用的是UTF-16le编码。于是用iconv(&#8216;UTF-16le&#8217;,'UTF-8&#8242;, $content); 搞定了。</p>
<p>当然如果你的程序编码不是utf-8的 替换成相应的编码就行了，同理要生成cvs文件，也将编码转换为UTF-16le就行了</p>
<p><strong>最重要的是：excel文档的编码是UTF-16le格式的</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/367.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PHP方法中的函数</title>
		<link>http://www.woniu.us/php_basic/326.html</link>
		<comments>http://www.woniu.us/php_basic/326.html#comments</comments>
		<pubDate>Wed, 05 May 2010 14:57:32 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php函数作用域]]></category>
		<category><![CDATA[面向对象]]></category>

		<guid isPermaLink="false">http://www.woniu.us/php_basic/326.html</guid>
		<description><![CDATA[在PHP的方法中如何使用函数呢？其实很简单，我们应该都知道如何在php类中调用外部函数吧，不知道的可以看一下这里]]></description>
			<content:encoded><![CDATA[<p><?</p>
<p>在PHP的方法中如何使用函数呢？其实很简单，我们应该都知道如何在php类中调用外部函数吧，不知道的可以看一下这里 <a href="http://www.woniu.us/php_basic/257.html">http://www.woniu.us/php_basic/257.html</a>，那么对于由类中的方法引入的函数应该处理呢？其实只要这个方法执行了，那么这个函数其实也是在全局范围内生效的。看一下下面的代码</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> a<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> b<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> c<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'123'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> a<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">b</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
c<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>上面代码的输出为123，这就说明了这个函数可以在类的外部直接调用。<br />
再看一下 下面的列子</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?</span><br />
<span style="color: #000000; font-weight: bold;">class</span> a<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> b<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> c<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'123'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> d<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; c<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> a<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">b</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">d</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>上面的代码同样能输出123<br />
再看一下下面的一个在其他类中调用这个另一个类中的函数</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> a<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> b<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> c<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'123'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">class</span> e<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> f<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; c<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> a<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">b</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$d</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> e<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$d</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">f</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>这段同样能输出123，由这些可以看出方法中的函数在全局是有效的</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/326.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>php与地址有关的环境变量</title>
		<link>http://www.woniu.us/php_basic/261.html</link>
		<comments>http://www.woniu.us/php_basic/261.html#comments</comments>
		<pubDate>Fri, 05 Mar 2010 08:01:23 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[php地址路由]]></category>
		<category><![CDATA[php实验]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=261</guid>
		<description><![CDATA[下面是一组测试数据，为了看看在哪些环境下 这些地址变量得到的是什么值]]></description>
			<content:encoded><![CDATA[<p>下面是一组测试数据，为了看看在哪些环境下 这些地址变量得到的是什么值<br />
测试代码如下</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'get:'</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'$_SERVER[\'PATH_INFO\']:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PATH_INFO'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'$_SERVER[\'QUERY_STRING\']:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'QUERY_STRING'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'$_SERVER[\'SCRIPT_NAME\']:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SCRIPT_NAME'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'$_SERVER[\'ORIG_PATH_INFO\']:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ORIG_PATH_INFO'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'$_SERVER[\'REQUEST_URI\']:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">;</span></div></div>
<p>1:apache模块模式下<br />
A：访问如下地址http://localhost/test/index.php/a/b/test.html?b=2&#038;c=1<br />
得到的输出为：<br />
get:Array ( [b] => 2 [c] => 1 )<br />
$_SERVER['PATH_INFO']:/a/b/test.html<br />
$_SERVER['QUERY_STRING']:b=2&#038;c=1<br />
$_SERVER['SCRIPT_NAME']:/test/index.php<br />
$_SERVER['ORIG_PATH_INFO']:<br />
$_SERVER['REQUEST_URI']:/test/index.php/a/b/test.html?b=2&#038;c=1<br />
B：开启rewrite模块省略掉index.php后 访问 http://localhost/test/a/b/test.html?b=2&#038;c=1<br />
得到的输出为:</p>
<p>get:Array ( [b] => 2 [c] => 1 )<br />
$_SERVER['PATH_INFO']:<br />
$_SERVER['QUERY_STRING']:b=2&#038;c=1<br />
$_SERVER['SCRIPT_NAME']:/index.php<br />
$_SERVER['ORIG_PATH_INFO']:<br />
$_SERVER['REQUEST_URI']:/test/a/b/test.html?b=2&#038;c=1</p>
<p>2:在apache cgi模式下<br />
A：访问如下地址http://localhost/test/index.php/a/b/test.html?b=2&#038;c=1<br />
得到了一个错误提示&#8221;No input file specified&#8221;<br />
据说这个cgi模式下只要在文件名后加斜杠 都不行<br />
B：开启rewrite模块省略掉index.php后 访问 http://localhost/test/a/b/test.html?b=2&#038;c=1<br />
得到如下输出<br />
get:Array ( [b] => 2 [c] => 1 )<br />
$_SERVER['PATH_INFO']:<br />
$_SERVER['QUERY_STRING']:b=2&#038;c=1<br />
$_SERVER['SCRIPT_NAME']:/index.php<br />
$_SERVER['ORIG_PATH_INFO']:<br />
$_SERVER['REQUEST_URI']:/test/a/b/test.html?b=2&#038;c=1<br />
结果与在apache模块模式下 一样。</p>
<p>看样子还是REQUEST_URI最可靠。但是为什么CI框架要使用&#8217;PATH_INFO&#8217;呢？<br />
而wordpress的URL路由使用的就是REQUEST_URI.当然CI框架中也可以使用REQUEST_URI模式，只不过要另外配置。<br />
CI给出的解释是<br />
Due to the way REQUEST_URI works it usually contains path info that makes it unusable as URI data.<br />
翻译过来就是：<br />
由于REQUEST_URI工作方式通常包含路径信息，使得它无法当做一个有用的URI数据来使用。<br />
也就是说如果在二级目录test下 我们使用REQUEST_URI来获取后面的URI数据的话 会连同test一起 获取到，这样的话就不会像path_info那样 只得到执行文件名后面那些数据了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/261.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP类中调用外部函数</title>
		<link>http://www.woniu.us/php_basic/257.html</link>
		<comments>http://www.woniu.us/php_basic/257.html#comments</comments>
		<pubDate>Fri, 05 Mar 2010 02:06:31 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[php函数作用域]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=257</guid>
		<description><![CDATA[何谓全局函数呢?有时候我们希望在类中调用外部的函数的时候怎么办呢？
纠结了几天终于发现原来可以直接调用 根本没有任何限制]]></description>
			<content:encoded><![CDATA[<p>何谓全局函数呢?有时候我们希望在类中调用外部的函数的时候怎么办呢？<br />
纠结了几天终于发现原来可以直接调用 根本没有任何限制</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> test<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> a<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$b</span><span style="color: #339933;">=</span> b<span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//这里调用了外部的b()函数 将$a的值加100</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$b</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//这里输出101</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> b<span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$b</span><span style="color: #339933;">=</span><span style="color: #000088;">$a</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$b</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000088;">$c</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">a</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>我一开始一直以为要使用其他的一些方法才能达到，看来是我手册没看透彻哈</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/257.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用php远程下载功能解决FTP上传慢的问题</title>
		<link>http://www.woniu.us/php_basic/189.html</link>
		<comments>http://www.woniu.us/php_basic/189.html#comments</comments>
		<pubDate>Mon, 04 Jan 2010 03:39:24 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[php常用代码]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=189</guid>
		<description><![CDATA[由于本博客用的godaddy的国外主机,所以用FTP上传文件 特别慢，于是找了个远程下载的代码，那速度是飞快啊！
废话不多说，代码贴出来：]]></description>
			<content:encoded><![CDATA[<p>由于本博客用的godaddy的国外主机,所以用FTP上传文件 特别慢，于是找了个远程下载的代码，那速度是飞快啊！</p>
<p>废话不多说，代码贴出来：</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;form method=&quot;post&quot;&gt;<br />
&lt;input name=&quot;url&quot; size=&quot;50&quot; /&gt;<br />
&lt;input name=&quot;submit&quot; type=&quot;submit&quot; /&gt;<br />
&lt;/form&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000088;">$pwd</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'comsing'</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//这里为你的密码</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pwd'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><br />
<a href="http://www.php.net/exit"><span style="color: #990000;">exit</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Sorry ,you are not validate user!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// maximum execution time in seconds</span><br />
<a href="http://www.php.net/set_time_limit"><span style="color: #990000;">set_time_limit</span></a> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">24</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">60</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'submit'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// folder to save downloaded files to. must end with slash</span><br />
<span style="color: #000088;">$destination_folder</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'./'</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$newfname</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$destination_folder</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/basename"><span style="color: #990000;">basename</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/fopen"><span style="color: #990000;">fopen</span></a> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$newf</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/fopen"><span style="color: #990000;">fopen</span></a> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$newfname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$newf</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/feof"><span style="color: #990000;">feof</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span><br />
<a href="http://www.php.net/fwrite"><span style="color: #990000;">fwrite</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newf</span><span style="color: #339933;">,</span> <a href="http://www.php.net/fread"><span style="color: #990000;">fread</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1024</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1024</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span><br />
<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$newf</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newf</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'OK,File has been downloaded!'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p><b>使用方法：</b></p>
<p>将这个代码保存为down.php 上传到你的服务器，然后访问这个地址down.php?pwd=&#8217;你的密码&#8217;<br />
然后在输入框输入你要下载的文件的地址就OK了<br />
是不是速度非常快了？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/189.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php使用gzip压缩网页传输的文件大小</title>
		<link>http://www.woniu.us/php_basic/127.html</link>
		<comments>http://www.woniu.us/php_basic/127.html#comments</comments>
		<pubDate>Thu, 03 Dec 2009 09:27:12 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[php压缩]]></category>
		<category><![CDATA[php缓存]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/php_basic/127.html</guid>
		<description><![CDATA[关于如何开启服务器的gzip支持这里就不多说了。我以前很长一段时间将自己的服务器的gzip压缩开启了，以为这样任何文件的传输都自动会压缩了。但是事实上并不是如此的。直到有一天我下载了一个火狐的http头插件，打开谷歌的时候查看其头信息，发现了两个gzip才知道Accept-Encoding: gzip,deflate表示浏览器支持gzip而Content-Encoding: gzip表示所请求的页面是通过gzip压缩传输的，然后我打开我的网站发现并没有Content-Encoding: gzip这个，我才知道原来服务器开启了gzip是一码事，在程序中使没使用是另外一回事]]></description>
			<content:encoded><![CDATA[<p><strong>关于gzip的误区</strong></p>
<p>关于如何开启服务器的gzip支持这里就不多说了。我以前很长一段时间将自己的服务器的gzip压缩开启了，以为这样任何文件的传输都自动会压缩了。但是事实上并不是如此的。直到有一天我下载了一个火狐的http头插件，打开谷歌的时候查看其头信息，发现了两个gzip才知道Accept-Encoding: gzip,deflate表示浏览器支持gzip而Content-Encoding: gzip表示所请求的页面是通过gzip压缩传输的，然后我打开我的网站发现并没有Content-Encoding: gzip这个，我才知道原来服务器开启了gzip是一码事，在程序中使没使用是另外一回事。</p>
<p>下面是http头</p>
<p><a href="http://www.google.com/">http://www.google.com/</a></p>
<p>GET / HTTP/1.1<br />
Host: www.google.com<br />
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.5) Gecko/20060719 (FoxPlus) Firefox/1.5.0.5<br />
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5<br />
Accept-Language: zh-cn,zh;q=0.5<br />
Accept-Encoding: gzip,deflate<br />
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7<br />
Keep-Alive: 300<br />
Connection: keep-alive</p>
<p>HTTP/1.x 200 OK<br />
Date: Thu, 03 Dec 2009 09:04:14 GMT<br />
Expires: -1<br />
Cache-Control: private, max-age=0<br />
Content-Type: text/html; charset=UTF-8<br />
Content-Encoding: gzip</p>
<p>为什么需要程序员自己决定什么时候启用gzip传输？因为调用gzip会消耗一定的系统资源，所以至于究竟要如何操作，apache或者说webserver将控制权交给了程序员。</p>
<p><strong>PHP如何使用gzip压缩</strong></p>
<p>1：用.htaccess文件实现</p>
<p>在.htaccess加入如下代码</p>
<p>php_flag zlib.output_compression on<br />
php_value zlib.output_compression_level 2</p>
<p>2：用PHP代码实现</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//启用GIP </span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ob_gzhandler'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//判断服务器是否支持 </span><br />
&nbsp; <a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ob_gzhandler'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">--&gt;</span></div></div>
<p>这里还有更加详细的介绍 <a title="http://www.xueit.com/html/2009-04/22_1062_00.html" href="http://www.xueit.com/html/2009-04/22_1062_00.html">http://www.xueit.com/html/2009-04/22_1062_00.html</a></p>
<p> </p>
<p>This should be a compressed page.</p>
<p> </p>
<p>压缩css的实例：</p>
<p>首先新建一个gzip-css.php文件，代码如下</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ob_gzhandler&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: text/css; charset: UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Cache-Control: must-revalidate&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$offset</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">60</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">60</span> <span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$ExpStr</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Expires: &quot;</span> <span style="color: #339933;">.</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/gmdate"><span style="color: #990000;">gmdate</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;D, d M Y H:i:s&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/time"><span style="color: #990000;">time</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; GMT&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ExpStr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>.htaccess设置如下</p>
<pre>AddHandler application/x-httpd-php .css
php_value auto_prepend_file gzip-css.php
php_flag zlib.output_compression On</pre>
<p>ob_start详解<br />
ob_start  ([  callback $output_callback  [,  int $chunk_size  [,  bool $erase  ]]] )<br />
output_callback表示回调函数，该回调函数接受的参数是缓冲区的内容，返回的值也是缓冲区的内容</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> callback<span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
  <span style="color: #666666; font-style: italic;">// replace all the apples with oranges</span><br />
  <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;apples&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;oranges&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;callback&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;p&gt;It's like comparing apples to oranges&lt;/p&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<br />
<a href="http://www.php.net/ob_end_flush"><span style="color: #990000;">ob_end_flush</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p><span style="color: #ff0000;"><strong>注意：</strong></span>虽然可以在APACHE里设置对任何CSS以及JS文件进行ZIP压缩，但是如果每次对所有的CSS以及JS，HTML文件进行GZIP压缩的确是能加快传输速度，<span style="color: #ff0000;">但是！却会增加服务器的负荷</span>，因为启用gzip压缩不单单要耗费内存，还要耗费CPU资源。最好的办法是先通过gzip工具将JS CSS文件压缩，然后再直接使用<br />
相关阅读</p>
<p><a href="http://developer.yahoo.com/performance/rules.html">http://developer.yahoo.com/performance/rules.html</a> 雅虎的网页提速建议</p>
<p><a href="http://w3er.com/blog/2009/02/self-auto-gzip-for-js-and-css/">http://w3er.com/blog/2009/02/self-auto-gzip-for-js-and-css/</a> 半自动化gzip优化</p>
<p><a href="http://www.ksarea.com/articles/20070626_gzip_compress_css_and_js_documents.html">http://www.ksarea.com/articles/20070626_gzip_compress_css_and_js_documents.html</a> GZIP压缩CSS与JS</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/127.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>简单说说PHP优化</title>
		<link>http://www.woniu.us/php_basic/123.html</link>
		<comments>http://www.woniu.us/php_basic/123.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 00:54:58 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/php_basic/123.html</guid>
		<description><![CDATA[我们在编写程序时，总是想要使自己的程序占用资源最小，运行速度更快，代码量更少。往往我们在追求这些的同时却失去了很多东西。下面我想讲讲我对PHP优化的理解。优化的目的是花最少的代价换来最快的运行速度与最容易维护的代码。]]></description>
			<content:encoded><![CDATA[<p>我们在编写程序时，总是想要使自己的程序占用资源最小，运行速度更快，代码量更少。往往我们在追求这些的同时却失去了很多东西。下面我想讲讲我对PHP优化的理解。优化的目的是花最少的代价换来最快的运行速度与最容易维护的代码。</p>
<p><strong>进行大范围的优化，而不是死啃某些程序代码</strong></p>
<p>我这里所说的优化，基本上都是从服务器，Apache,数据库这些方面来进行的优化，而并不是对你的PHP代码加以改进从而提高程序的运行速度，因为比起你将程序中的正则优化为字符串处理函数从而提升程序速度来说，在大范围内进行的优化所需要的代价要比这个小的多，而获得报酬却要丰厚的多。</p>
<p>在非代码处进行优化有以下好处</p>
<p>1：通常情况下能够大大提高效率</p>
<p>2：不会危及到代码的完整性</p>
<p>3：能够快速部署</p>
<p><strong>缓存技术</strong><strong></strong></p>
<p>下面来说说常用的缓存技术，通过这些缓存技术能够大大的提高效率</p>
<p>在说到缓存技术的时候不得不提到memcached ，memcached是高效、快速的分布式内存对象缓存系统，主要用于加速 WEB 动态应用程序。</p>
<p><strong>Memcached</strong><strong>的原理</strong></p>
<p>memcached 是以守护程序方式运行于一个或多个服务器中，等待接收客户端的连接操作，客户端可以由各种语言编写（例如PHP）。PHP 等客户端在与 memcached 服务建立连接之后，接下来的事情就是存取对象了，每个被存取的对象都有一个唯一的标识符 key，存取操作均通过这个 key 进行，保存到 memcached 中的对象实际上是放置内存中的，并不是保存在 cache 文件中的，这也是为什么 memcached 能够如此高效快速的原因</p>
<p>说完memcached，下面来说说常用的缓存方法</p>
<p>1：编译与OPCODE缓存</p>
<p>因为PHP是解释型的语言，所以每个PHP文件在运行的时候都需要编译后再执行，同一个文件，不同的用户访问，或者同一个用户不同时间访问同一个文件，每次都需要重新编译然后运行，这样就耗费了大量时间。</p>
<p>通过编译缓存每个文件在修改之后只编译一次这样就减少了文件IO操作，用户访问后机器指令直接从内存中取出并执行而不是从硬盘中读出。</p>
<p>最常见的PHP编译缓存工具有：APC，Accelerator，xcache</p>
<p>关于编译缓存的更多文章可以看这里：<a href="http://info.52z.com/html/25466.html">http://info.52z.com/html/25466.html</a></p>
<p>2：全局页面缓存&#8211; Squid Cache</p>
<p>Squid Cache（简称为Squid）是一个流行的自由软件（GNU通用公共许可证）的代理服务器和Web缓存服务器，Squid作为网页服务器的前置cache服务器通过缓存相关请求来提高Web服务器的速度</p>
<p>更多介绍请看这里：<a href="http://zh.wikipedia.org/wiki/Squid_cache">http://zh.wikipedia.org/wiki/Squid_cache</a></p>
<p>3：局部缓存之SQL缓存</p>
<p>在大多数应用程序中主要的瓶颈往往可以追溯到数据库的操作中，一般都是因为复杂的数据库查询而耗费了大量时间，而SQL缓存可以大大降低复杂查询造成的负荷。</p>
<p>SQL缓存的例子(使用了memcached扩展)</p>
<p>$key = md5(“some sort of sql query”);</p>
<p>if (!($result = memcache_get($key))) {</p>
<p>$result = $pdo-&gt;query($qry)-&gt;fetchAll();</p>
<p>// 缓存查询结果一小时</p>
<p>memcache_set($key, $result, NULL, 3600);</p>
<p>}</p>
<p>4：局部缓存之代码块缓存</p>
<p>为了优化PHP程序，有时候我们不得不优化一个个代码段来减少那么一点点的执行的时间，但是比起优化复杂的不同的PHP代码段还不如通过缓存来直接忽略这些代码段的优化，这样做的好处是</p>
<p>a：能够很快的看到效果</p>
<p>b：不会破坏以前的代码</p>
<p>c：速度要比优化代码要快得多</p>
<p>代码块缓存的列子(同样使用了memcached扩展)</p>
<p>function complex_function_abc($a, $b, $c) {</p>
<p>$key = __FUNCTION__ . serialize</p>
<p>(func_get_args());</p>
<p>if (!($result = memcache_get($key))) {</p>
<p>$result = //函数代码</p>
<p>// 储存执行结果1小时</p>
<p>memcache_set($key, $result, NULL, 3600);</p>
<p>}</p>
<p>return $result;</p>
<p>}</p>
<p>当然除了上述方法外还可以用到文件缓存（将数据库中的数据取出储存在文件中），还可以生成静态HTML文件等，但是这些方法的缓存还是将文件储存在硬盘上而不是内存中。</p>
<p><strong>输出控制</strong><strong></strong></p>
<p>除了上述缓存技术外还可以通过输出控制来让程序执行的时间更少</p>
<p>下面通过PHP与APACHE来说说输出控制</p>
<p>1：PHP输出控制</p>
<p>这里最主要用到ob_start()以及PHP中的OB系列函数，这些函数可以做什么呢？</p>
<p>第一就是静态模版技术</p>
<p>所谓静态模版技术就是通过某种方式，使得用户在client端得到的是由PHP产生的html页面。如果这个html页面不会再被更新，那么当另外的用户再次浏览此页面时，程序将不会再调用PHP以及相关的数据库，对于某些信息量比较大的网站，例如sina,163,sohu。类似这种的技术带来的好处是非常巨大的。</p>
<p>代码示例：</p>
<p>&lt;?php</p>
<p>ob_start();//打开缓冲区</p>
<p>?&gt;</p>
<p>php页面的全部输出</p>
<p>&lt;?</p>
<p>$content = ob_get_contents();//取得php页面输出的全部内容</p>
<p>$fp = fopen(&#8220;output.html&#8221;, &#8220;w&#8221;); //创建一个文件，并打开，准备写入</p>
<p>fwrite($fp, $content); //把php页面的内容全部写入output.html，然后……</p>
<p>fclose($fp);</p>
<p>?&gt;</p>
<p>当然这个ob系列函数还有其他很多用处我就不在这里一一说明了。</p>
<p>2：apache输出控制</p>
<p>将SendBufferSize设置为页面大小，这样就能将页面一次性放在发送缓冲区从而增加处理速度</p>
<p><a name="sendbuffersize"><strong>SendBufferSize </strong></a><strong>指令</strong><strong></strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong><a href="http://www.cmsjzw.com/tools/apache2_2/mod/directive-dict.html#Description">说明</a></strong></td>
<td valign="top">TCP发送缓冲区大小(字节)</td>
</tr>
<tr>
<td valign="top"><strong><a href="http://www.cmsjzw.com/tools/apache2_2/mod/directive-dict.html#Syntax">语法</a></strong></td>
<td valign="top">SendBufferSize <em>bytes</em></td>
</tr>
<tr>
<td valign="top"><strong><a href="http://www.cmsjzw.com/tools/apache2_2/mod/directive-dict.html#Default">默认值</a></strong></td>
<td valign="top">SendBufferSize 0</td>
</tr>
<tr>
<td valign="top"><strong><a href="http://www.cmsjzw.com/tools/apache2_2/mod/directive-dict.html#Context">作用域</a></strong></td>
<td valign="top">server config</td>
</tr>
<tr>
<td valign="top"><strong><a href="http://www.cmsjzw.com/tools/apache2_2/mod/directive-dict.html#Status">状态</a></strong></td>
<td valign="top">MPM</td>
</tr>
<tr>
<td valign="top"><strong><a href="http://www.cmsjzw.com/tools/apache2_2/mod/directive-dict.html#Module">模块</a></strong></td>
<td valign="top"><a href="http://www.cmsjzw.com/tools/apache2_2/mod/beos.html">beos</a>, <a href="http://www.cmsjzw.com/tools/apache2_2/mod/mpm_netware.html">mpm_netware</a>, <a href="http://www.cmsjzw.com/tools/apache2_2/mod/mpm_winnt.html">mpm_winnt</a>, <a href="http://www.cmsjzw.com/tools/apache2_2/mod/mpmt_os2.html">mpmt_os2</a>, <a href="http://www.cmsjzw.com/tools/apache2_2/mod/prefork.html">prefork</a>, <a href="http://www.cmsjzw.com/tools/apache2_2/mod/worker.html">worker</a></td>
</tr>
</tbody>
</table>
<p>这个指令设置服务器的TCP发送缓冲区的大小(字节)。提高这个值会导致两个后果：高速度和高潜伏时间(100ms左右)。如果设置为&#8221;0&#8243;，将使用操作系统默认值。</p>
<p>通过源代码方式编译你的Apache/PHP/Database 可让你的程序增加10&#8211;15%的速度</p>
<p><strong>下面再说说在代码优化的时候应该注意的</strong></p>
<p>1：短代码不等于快的代码</p>
<p>很多人在写程序时希望将代码写的越简洁越好，但是越短的代码有时候反而需要更长的执行时间，所以哪怕是用更多的代码也不使用速度慢的代码</p>
<p>2：在写程序的时候更应该注重程序的扩展性，而不是追求速度</p>
<p>3：在优化你的代码之前，先看看跟数据库有关的部分，因为大多数应用程序的瓶颈在数据库而不是代码</p>
<p>4：微优化得不偿失</p>
<p>什么叫做微优化？就像前面所说的将正则表达式部分的代码改用字符串函数代替。这样做有以下缺点</p>
<p>a：花费时间较长</p>
<p>b：不会解决你的性能问题</p>
<p>c：很有可能会破坏以前的代码从而产生未知的错误</p>
<p>d：付出大于回报</p>
<p>这里还不得不提到一个误区，有些人为了让程序更加优化，在分析业务逻辑的时候便将优化考虑在内了，从而为了得到更优的代码而改动业务逻辑。这是十分愚蠢的想法，因为程序的目的便是为了处理现实中遇到的问题，是为这些问题服务的，怎么能本末倒置呢。</p>
<p>关于mysql的优化建议可以看这里<a href="http://coolshell.cn/?p=1846">http://coolshell.cn/?p=1846</a> 这个应该算是微优化</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/123.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>uri应用之URL路由【转载于以前的博客】</title>
		<link>http://www.woniu.us/php_basic/62.html</link>
		<comments>http://www.woniu.us/php_basic/62.html#comments</comments>
		<pubDate>Wed, 23 Sep 2009 12:23:34 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[URL路由]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=62</guid>
		<description><![CDATA[URI是什么？跟URL有什么区别呢？ 这个我就不多说了。不懂的朋友可以看这里：什么是uri 什么是url 两者的关系是什么？

 
 在PHP中实现URL路由的 可以用到两个服务器环境变量

]]></description>
			<content:encoded><![CDATA[<p>URI是什么？跟URL有什么区别呢？ 这个我就不多说了。不懂的朋友可以看这里：<a href="http://tech.163.com/06/1023/09/2U41GUGK000918BL.html" target="_self">什么是uri 什么是url 两者的关系是什么？</a></p>
<p> 在PHP中实现URL路由的 可以用到两个服务器环境变量</p>
<p>$_SERVER["REQUEST_URI"];</p>
<p>$_SERVER['PATH_INFO'];</p>
<p>其中$_SERVER["REQUEST_URI"];数组变量存储的是访问此页面所需的 URI</p>
<p>通俗的说$_SERVER["REQUEST_URI"];取得的是 除去域名外。从域名的反斜杠开始一直到网址最后部分的数据</p>
<p>例如：</p>
<p>uri/2.php包含如下代码</p>
<p>&lt;?<br />
$path= $_SERVER["REQUEST_URI"];<br />
print_r($path);<br />
?&gt;</p>
<p>我们通过下面的地址访问。</p>
<p> <a href="http://localhost/uri/2.php/index/hello?a=1">http://localhost/uri/2.php/index/hello?a=1</a></p>
<p>得到的输出为： /uri/2.php/index/hello?a=1</p>
<p>如果通过rewrite 把2.php屏蔽掉。则通过<a href="http://localhost/uri/index/hello?a=1">http://localhost/uri/index/hello?a=1</a> 方式访问2.php文件 则得到如下输出</p>
<p>/uri/index/hello?a=1</p>
<p>下面再说说<strong>$_SERVER['PATH_INFO']</strong></p>
<p>$_SERVER['PATH_INFO'] 我在手册上没看到介绍，在网上也没找到相关资料。通过实验得出 $_SERVER['PATH_INFO'] 的作用为：获取本执行文件名后面的路径及参数信息</p>
<p>同样举个例子</p>
<p>在uri目录下 建立2.php文件 代码如下</p>
<p>&lt;?<br />
$path= $_SERVER['PATH_INFO'];<br />
print_r($path);<br />
?&gt;</p>
<p>通过<a href="http://localhost:1108/uri/2.php/index/hello?a=1">http://localhost/uri/2.php/index/hello?a=1</a> 访问得到如下输出</p>
<p>/index/hello   这里 没有?a=1</p>
<p>通过rewrite屏蔽掉2.php 通过<a href="http://localhost:1108/uri/2.php/index/hello?a=1">http://localhost/uri/index/hello?a=1</a> 访问得到的输出为空白的</p>
<p>也就是说$_SERVER['PATH_INFO'] 在rewrite下失去作用了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/62.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP引用(&amp;)详解【转载于以前的博客&#8211;蜗牛日记】</title>
		<link>http://www.woniu.us/php_basic/59.html</link>
		<comments>http://www.woniu.us/php_basic/59.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 12:19:02 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=59</guid>
		<description><![CDATA[php的引用（就是在变量或者函数、对象等前面加上&#038;符号）

在PHP 中引用的意思是：不同的名字访问同一个变量内容.
与Ｃ语言中的指针是有差别的．Ｃ语言中的指针里面存储的是变量的内容在内存中存放的地址
]]></description>
			<content:encoded><![CDATA[<div>
<p>php的引用（就是在变量或者函数、对象等前面加上&amp;符号）</p>
<p>在PHP 中引用的意思是：不同的名字访问同一个变量内容.<br />
与Ｃ语言中的指针是有差别的．Ｃ语言中的指针里面存储的是变量的内容在内存中存放的地址</p>
<p><strong>变量的引用</strong></p>
<p>PHP 的引用允许你用两个变量来指向同一个内容</p>
<p>&lt;?<br />
$a=&#8221;ABC&#8221;;<br />
$b =&amp;$a;<br />
echo $a;//这里输出:ABC<br />
echo $b;//这里输出:ABC<br />
$b=&#8221;EFG&#8221;;<br />
echo $a;//这里$a的值变为EFG 所以输出EFG<br />
echo $b;//这里输出EFG<br />
?&gt;</p>
<p><strong>函数的传址调用</strong><br />
传址调用我就不多说了 下面直接给出代码</p>
<p>function test(&amp;$a)<br />
{<br />
$a=$a+100;<br />
}<br />
$b=1;<br />
echo $b;//输出１<br />
test($b);  //这里$b传递给函数的其实是$b的变量内容所处的内存地址，通过在函数里改变$a的值　就可以改变$b的值了<br />
echo &#8220;&lt;br&gt;&#8221;;<br />
echo $b;//输出101</p>
<p>要注意的是，在这里test(１);的话就会出错，原因自己去想</p>
<p><strong>函数的引用返回</strong><br />
先看代码</p>
<p>function &amp;test()<br />
{<br />
static $b=0;//申明一个静态变量<br />
$b=$b+1;<br />
echo $b;<br />
return $b;<br />
}</p>
<p>$a=test();//这条语句会输出　$b的值　为１<br />
$a=5;<br />
$a=test();//这条语句会输出　$b的值　为2</p>
<p>$a=&amp;test();//这条语句会输出　$b的值　为3<br />
$a=5;<br />
$a=test();//这条语句会输出　$b的值　为6</p>
<p>下面解释下：　<br />
通过这种方式$a=test();得到的其实不是函数的引用返回，这跟普通的函数调用没有区别　至于原因：　这是ＰＨＰ的规定<br />
ＰＨＰ规定通过$a=&amp;test(); 方式得到的才是函数的引用返回<br />
至于什么是引用返回呢（ＰＨＰ手册上说：引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。) 这句狗屁话　害我半天没看懂</p>
<p>用上面的例子来解释就是<br />
$a=test()方式调用函数，只是将函数的值赋给$a而已，　而$a做任何改变　都不会影响到函数中的$b<br />
而通过$a=&amp;test()方式调用函数呢, 他的作用是　将return $b中的　$b变量的内存地址与$a变量的内存地址　指向了同一个地方<br />
即产生了相当于这样的效果($a=&amp;b;) 所以改变$a的值　也同时改变了$b的值　所以在执行了<br />
$a=&amp;test();<br />
$a=5;<br />
以后，$b的值变为了5</p>
<p>这里是为了让大家理解函数的引用返回才使用静态变量的，其实函数的引用返回多用在对象中</p>
<p><strong>对象的引用</strong></p>
<p>&lt;?<br />
class a{<br />
var $abc=&#8221;ABC&#8221;;<br />
}<br />
$b=new a;<br />
$c=$b;<br />
echo $b-&gt;abc;//这里输出ABC<br />
echo $c-&gt;abc;//这里输出ABC<br />
$b-&gt;abc=&#8221;DEF&#8221;;<br />
echo $c-&gt;abc;//这里输出DEF<br />
?&gt;</p>
<p>以上代码是在PHP5中的运行效果<br />
在PHP5中 对象的复制 是通过引用来实现的。上列中$b=new a; $c=$b; 其实等效于$b=new a; $c=&amp;$b;<br />
PHP5中默认就是通过引用来调用对象， 但有时你可能想建立一个对象的副本，并希望原来的对象的改变不影响到副本 . 为了这样的目的，PHP定义了一个特殊的方法，称为__clone.</p>
<p><strong>引用的作用</strong><br />
如果程序比较大,引用同一个对象的变量比较多,并且希望用完该对象后手工清除它,个人建议用 &#8220;&amp;&#8221; 方式,然后用$var=null的方式清除. 其它时候还是用php5的默认方式吧. 另外, php5中对于大数组的传递,建议用 &#8220;&amp;&#8221; 方式, 毕竟节省内存空间使用。</p>
<p><strong>取消引用</strong><br />
当你 unset 一个引用，只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如：</p>
<p>&lt;?php<br />
$a = 1;<br />
$b =&amp; $a;<br />
unset ($a);<br />
?&gt;  </p>
<p>不会 unset $b，只是 $a。</p>
<p><strong>global 引用</strong><br />
当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的：</p>
<p>&lt;?php<br />
$var =&amp; $GLOBALS["var"];<br />
?&gt;  </p>
<p>这意味着，例如，unset $var 不会 unset 全局变量。</p>
<p><strong>$this</strong><br />
在一个对象的方法中，$this 永远是调用它的对象的引用。</p>
<p>//下面再来个小插曲<br />
php中对于地址的指向（类似指针）功能不是由用户自己来实现的，是由Zend核心实现的，php中引用采用的是“写时拷贝”的原理，就是除非发生写操作，指向同一个地址的变量或者对象是不会被拷贝的。</p>
<p>通俗的讲<br />
1:如果有下面的代码</p>
<p>$a=&#8221;ABC&#8221;;<br />
$b=$a;</p>
<p>其实此时　$a与$b都是指向同一内存地址　而并不是$a与$b占用不同的内存</p>
<p>２:如果在上面的代码基础上再加上如下代码</p>
<p>$a=&#8221;EFG&#8221;;</p>
<p>由于$a与$b所指向的内存的数据要重新写一次了，此时Zend核心会自动判断　自动为$b生产一个$a的数据拷贝，重新申请一块内存进行存储</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/59.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php+mysql+apache编码深度解析【转载于以前的博客】</title>
		<link>http://www.woniu.us/php_basic/56.html</link>
		<comments>http://www.woniu.us/php_basic/56.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 12:16:36 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[PHP基础知识]]></category>
		<category><![CDATA[php乱码]]></category>
		<category><![CDATA[php编码]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=56</guid>
		<description><![CDATA[最近蜗牛在做WEBGAME项目期间经常被可恶的乱码问题所困扰，现在基本上所有问题解决了。蜗牛把自己的经验拿出来跟大家分享。同时也为下一个项目—-数据库备份系统，做准备]]></description>
			<content:encoded><![CDATA[<p>最近蜗牛在做WEBGAME项目期间经常被可恶的乱码问题所困扰，现在基本上所有问题解决了。蜗牛把自己的经验拿出来跟大家分享。同时也为下一个项目—-数据库备份系统，做准备。</p>
<p>  好了，废话少说，直接切入：</p>
<p>  我们在做PHP项目的时候，经常会遇到中文乱码的问题，有时候编码问题还导致MYSQL的报错。中文乱码总共有三个原因</p>
<p>1：APACHE服务器设置导致乱码</p>
<p>2：PHP，或者HTML页面编码导致中文乱码</p>
<p>3：MYSQL数据库的表以及字段编码导致中文乱码</p>
<p>我们分别从这三个部分来探究PHP程序设计中的编码问题</p>
<p>在这之前我们要了解一些基本理论：</p>
<p>1、文件编码</p>
<p>每个文件在保存的时候都可以选择以什么编码保存，例如用WINDOWS的记事本创建一个文件可以选择ANSI 以及UTF8等等编码。我们选择了什么编码该文件就以这种编码方式保存在硬盘上。 读取该文件数据的时候也会指定一种编码来打开，如果指定的编码与文件保存的时候的编码不一样的话就会出现乱码</p>
<p>2、HTML的编码</p>
<p>在网页头部一般有这样一个&lt;HEAD&gt;区域</p>
<p>&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;<br />
这个的意思是让客户端知道，接下来输出的是html代码（text/html），并且以下输出的内容都将是utf-8编码的。如果我们用记事本创建一个HTML文件 该文件包含</p>
<p>&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;</p>
<p>但是在保存的时候却以ANSI编码格式保存，那么我们用浏览器打开这个文件时，浏览器看见META 行的UTF8编码设置后 就将文件以UTF8格式输出，而文件本来是ANSI编码，这样便出现了中文乱码。</p>
<p><strong><span style="color: #0000ff;">一：APACHE服务器编码</span></strong></p>
<p>在APACHE配置文件中有一行是编码的设置 默认的是AddDefaultCharset ISO-8859-1，大部分人认为应该将这句改为 AddDefaultCharset UTF-8 。而蜗牛认为这是误人子弟。 这项配置是告诉APACHE服务器选用什么样的编码来输出WEB页面（这样做会忽略，HTML页面中的页面编码的设置 EG：&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=UTF-8&#8243; /&gt;），如果我们建立一个GB2312的页面就会出现中文乱码 。所以最好的方法是将AddDefaultCharset ISO-8859-1这一项注释掉 #AddDefaultCharset</p>
<p><strong><span style="color: #0000ff;">二：PHP编码问题</span></strong></p>
<p>php最终生成的是文本文件，而他要从数据库中取出文本数据，还要把文本数据写到数据库中。由于MYSQL并不知道PHP发送给他的是什么编码的数据，所以需要客户端PHP告诉他存取的是什么编码的数据。然后MYSQL会自动将PHP传送来的数据转换成目标编码格式的数据。</p>
<p><span style="color: #808080;">比如： PHP要将 文本数据DATE 写入到数据库字段field中，PHP发送的是UTF-8编码的数据，而DATE是以GB2312方式存储的。这时候PHP通过设置告诉MYSQL 我发的是UTF-8格式，MYSQL接到数据后 说:”我知道了，来谁专门负责将UTF-8转换成GB2312“ 于是MYSQL中的一个专门负责此事的小兵跑来 把数据拿走经过加工放到指定位置，如果PHP误将UTF-8编码的数据 当作GB2312编码 送给MYSQL的时候，MYSQL会叫上次那个负责UTF-8—-GB2312的小兵来负责，而小兵不管三七二十一按同样方法转换存起来，这就出现了错误，乱码就产生了。取数据的时候也一样,PHP要告诉MYSQL要取出什么样编码的数据。</span></p>
<p>PHP通过character_set_client告诉MYSQL，php存入数据库的是什么编码方式</p>
<p>PHP通过character_set_results告诉MYSQL,php需要取什么样编码的数据</p>
<p>PHP通过character_set_connection告诉MYSQL,PHP查询中的文本，使用什么编码</p>
<p>就算上面的大家都注意了，还有个问题也可能导致乱码。那就是PHP文件(生成的HTML页面）本身的编码问题</p>
<p>如果MYSQL传来的数据 编码与PHP本身编码不一致也会导致乱码</p>
<p><strong><span style="color: #0000ff;">三：MYSQL编码问题</span></strong></p>
<p>Mysql目前支持多字符集，并且，支持在不同的字符集之间转换（便于移植和支持多语言）。<br />
Mysql可以设置服务器级字符集、数据库级字符集、数据表级字符集、表列的字符集，实际上，最终使用字符集的地方是存储字符的列，比如，你设置 table1中col1列是字符类型，col1才用到了字符集，如果table1表的col2列是int类型，col2不使用字符集的概念。<br />
服务器级字符集、数据库级字符集、数据表级字符集都是为列的字符集做默认选项的。<br />
Mysql一定有一个字符集，可以通过启动时加参数指定 ，也可以编译时指定，也可以在配置文件里指定。Mysql服务器字符集，只是做为数据库级的默认值。创建数据库时，你可以指定字符集，如果没指定，就使用服务器的字符集。同理，创建表时，你可以指定表级的字符集，如果没指定，使用数据库的字符集做为表的字符集。创建列时，你可以指定某列的字符集，如果没指定，就使用表的字符集。<br />
通常情况下，您只需设置服务器级的字符集，其它的数据库级，表级，以及列级的字符集，都继承自服务器级字符集。<br />
由于UTF8是最广的字符集，所以，一般情况下，我们设置Mysql服务器级的字符集为UTF8！</p>
<p> </p>
<p><span style="color: #ff0000;">总结：</span></p>
<p>要保证不乱码，需将三个编码统一：</p>
<p><span style="color: #ff0000;">一：是网页自身的编码</span></p>
<p><span style="color: #ff0000;">二：是HTML里指定的编码</span></p>
<p><span style="color: #ff0000;">三：是PHP告诉Mysql的编码(包括character_set_client和character_set_results)。</span></p>
<p>第一和第二个编码，如果使用DW之类的编辑器写的网页，通常是一致的，但用记事本写的网页，有可能不一致。<br />
第三个编码，需要手工通知Mysql。这步可以通过在PHP里使用mysql_query(“set names characterX”)来实现。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/php_basic/56.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
