<?xml version="1.0" encoding="utf-8"?>
<!-- generator="tamcn.cn" -->
<?xml-stylesheet href="" type="text/xsl"?>
<rss version="2.0">
    <channel>
        <title>第九街博客</title>
        <description>PHP技术,PHP学习教程.</description>
        <link>http://www.9streets.cn/</link>
        <lastBuildDate>Thu, 23 Feb 2012 16:53:30 +800</lastBuildDate>
        <generator>tamcn.cn</generator>
        <language>zh-CN</language>
        <copyright>Copyright PHP网站 Some Rights Reserved.</copyright>
        <item>
            <title>PHP自动补够函数</title>
            <link>http://www.9streets.cn/art-php-506.html</link>
            <description>&lt;p&gt;以够某个数字长度是固定的，不够补全位数，有个很好用的函数，str_pad 在这里记一下，调用很简单就不在这里多加说明了：&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;div class=&quot;codeHead&quot;&gt;&lt;span class=&quot;lantxt&quot;&gt;PHP Code&lt;/span&gt;&lt;span onclick=&quot;copyIdText('code_8054')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;code_8054&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-c&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;参数&amp;nbsp;&amp;nbsp;描述&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;string&amp;nbsp;&amp;nbsp;必需。规定要填充的字符串。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;length&amp;nbsp;&amp;nbsp;必需。规定新字符串的长度。如果该值小于原始字符串的长度，则不进行任何操作。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;pad_string&amp;nbsp;&amp;nbsp;可选。规定供填充使用的字符串。默认是空白。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;pad_type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;可选。规定填充字符串的那边。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;可能的值：&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STR_PAD_BOTH&amp;nbsp;-&amp;nbsp;填充到字符串的两头。如果不是偶数，则右侧获得额外的填充。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STR_PAD_LEFT&amp;nbsp;-&amp;nbsp;填充到字符串的左侧。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STR_PAD_RIGHT&amp;nbsp;-&amp;nbsp;填充到字符串的右侧。这是默认的。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;实例：&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;&lt;span onclick=&quot;copyIdText('code_6681')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;
&lt;div id=&quot;code_6681&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-c&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;lt;?php&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;vars&quot;&gt;$str&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Hello&amp;nbsp;World&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;echo&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;func&quot;&gt;str_pad&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$str&lt;/span&gt;&lt;span&gt;,20,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;.:&amp;quot;&lt;/span&gt;&lt;span&gt;,STR_PAD_BOTH);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//.:.:Hello&amp;nbsp;World.:.:.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;?&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 20 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>mysql自动补全功能</title>
            <link>http://www.9streets.cn/art-php-505.html</link>
            <description>&lt;p&gt;在&lt;a href=&quot;http://www.9streets.cn/art-php-240.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;dos里连数据库mysql操作&lt;/span&gt;&lt;/a&gt;的时候，就想到mysql有没有自动补全功能呢？就像在&lt;a href=&quot;http://www.9streets.cn/art-php-428.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;window下tab自动补全功能&lt;/span&gt;&lt;/a&gt;一样方便，上网查了一下，真有解决方法。但是在window下是用不了，只能在linux下才生效，网上都说是mysql一个bug,习惯了在window上操作的用户来说，确实是一个纠结的bug。&lt;br /&gt;
&lt;img height=&quot;475&quot; width=&quot;691&quot; src=&quot;/userfiles/mysql+no+rehash.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
点击更多&lt;a href=&quot;http://stackoverflow.com/questions/269653/autocomplete-in-mysql-under-windows&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;英文详细解释&lt;/span&gt;&lt;/a&gt;。在这里贴一下在linux下mysql的自动补全功能解决方法：&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;div class=&quot;codeHead&quot;&gt;&lt;span class=&quot;lantxt&quot;&gt;PHP Code&lt;/span&gt;&lt;span onclick=&quot;copyIdText('code_7482')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;code_7482&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-c&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;一、修改my.cnf&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;vi&amp;nbsp;/etc/my.cnf&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;[mysql]&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;auto-rehash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#添加auto-rehash&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;重启mysql服务&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;二、客户端连接mysql时&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;在mysql启动时加参数auto-rehash&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;mysql&amp;nbsp;-h主机&amp;nbsp;&amp;ndash;u帐号&amp;nbsp;-p密码&amp;nbsp;--auto-rehash&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Sun, 19 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>dos里面编码设置问题</title>
            <link>http://www.9streets.cn/art-php-504.html</link>
            <description>&lt;p&gt;在&lt;a href=&quot;http://www.9streets.cn/art-php-445.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;dos&lt;/span&gt;&lt;/a&gt;下执行一个PHP文件的时候，由于输出文件文字是UTF8编码，所以显示出现了乱码，显示效果如图：&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;br /&gt;
重新设置了一下&lt;a href=&quot;http://www.9streets.cn/art-php-445.html&quot;&gt;DOS的编码&lt;/a&gt;，命令 ：chcp 65001 在命令行标题栏上点击右键，选择&amp;quot;属性&amp;quot;-&amp;gt;&amp;quot;字体&amp;quot;，将字体修改为True Type字体&amp;quot;Lucida Console&amp;quot;，然后点击确定将属性应用到当前窗口，出现以下画面&lt;br /&gt;
&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;br /&gt;
确定便可&lt;br /&gt;
MS-DOS为以下国家和语言提供字符集： 　　代码页描述 　　1258 越南语 　　1257 波罗的语 　　1256 阿拉伯语 　　1255 希伯来语 　　1254 土耳其语 　　1253 希腊语 　　1252 拉丁 1 字符 (ANSI) 　　1251 西里尔语 　　1250 中欧语言 　　950 繁体中文 　　949 朝鲜语 　　936 简体中文（默认） 　　932 日语 　　874 泰国语 　　850 多语种 (MS-DOS Latin1) 　　437 MS-DOS 美国英语&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Sun, 19 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>再谈无极限分类实现思想实例</title>
            <link>http://www.9streets.cn/art-php-503.html</link>
            <description>&lt;p&gt;我相信对于PHP开发的同学多多少少都遇到过无极限分类的问题，或许你是在开发过程，或许你是在面试过程中。在这里我拿某个开源项目里面是如何实现无极限分类思想说说。&lt;/p&gt;
&lt;p&gt;总体来说就是一个无极限遍历组合的过程，为了避免不知头不知尾同时能加强理解，可以先把&lt;a href=&quot;/userfiles/无极限分类.rar&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;无极限分类demo&lt;/span&gt;&lt;/a&gt;下载下来，里面包涵了一个sql文件和php文件，配到数据库同时修改一个php文件数据库配置.里面只做了获取无极限分类的一个效果.把所有分类存到一张表里面便可，一次性把分类取出来给合成数组，遍历数组每一条数据，判断其父类ID是否有上一级的ID号，此父类ID为父类数据对应存在表里的流水ID号，如父类ID为0，说明此类为最高分类.其实理解难点是在如何遍历那里，代码如下：&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;div class=&quot;codeHead&quot;&gt;&lt;span class=&quot;lantxt&quot;&gt;PHP Code&lt;/span&gt;&lt;span onclick=&quot;copyIdText('code_3734')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;code_3734&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-c&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span&gt;&amp;nbsp;get_list_category(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$array&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$parentid&lt;/span&gt;&lt;span&gt;=0,&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$level&lt;/span&gt;&lt;span&gt;=0,&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$add&lt;/span&gt;&lt;span&gt;=2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$str_pad&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$this&lt;/span&gt;&lt;span&gt;-&amp;gt;getnbsp(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$level&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$newarray&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;array&lt;/span&gt;&lt;span&gt;();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$temp&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;array&lt;/span&gt;&lt;span&gt;();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;foreach&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$array&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;as&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'parent_id'&lt;/span&gt;&lt;span&gt;]&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$parentid&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$newarray&lt;/span&gt;&lt;span&gt;[]&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;array&lt;/span&gt;&lt;span&gt;(&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'cat_id'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'cat_id'&lt;/span&gt;&lt;span&gt;],&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'cat_name'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'cat_name'&lt;/span&gt;&lt;span&gt;],&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'keywords'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'keywords'&lt;/span&gt;&lt;span&gt;],&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'description'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'description'&lt;/span&gt;&lt;span&gt;],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'parent_id'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'parent_id'&lt;/span&gt;&lt;span&gt;],&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'sort_order'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'sort_order'&lt;/span&gt;&lt;span&gt;],&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;string&quot;&gt;'str_pad'&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$str_pad&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$temp&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$this&lt;/span&gt;&lt;span&gt;-&amp;gt;get_list_category(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$array&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$v&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'cat_id'&lt;/span&gt;&lt;span&gt;],(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$level&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$add&lt;/span&gt;&lt;span&gt;));&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$temp&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$newarray&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;func&quot;&gt;array_merge&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$newarray&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$temp&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$newarray&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;实现效果如下：&lt;br /&gt;
&lt;img height=&quot;50&quot; width=&quot;715&quot; src=&quot;/userfiles/无极限分类.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Wed, 15 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>mysql中explain的一些讲解2)</title>
            <link>http://www.9streets.cn/art-php-502.html</link>
            <description>&lt;p&gt;&lt;br /&gt;
Explain命令用于查看执行效果。虽然这个命令只能搭配select类型语句使用，如果你想查看update，delete类型语句中的索引效果，也不是太难的事情，只要保持条件不变，把类型转换成select就行了。&lt;br /&gt;
&lt;br /&gt;
explain的语法如下：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;explain [extended] select ... from ... where ...&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
如果使用了extended，那么在执行完explain语句后，可以使用show warnings语句查询相应的优化信息。&lt;br /&gt;
&lt;br /&gt;
==============================================================&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.maatkit.org/doc/mk-visual-explain.html&quot; target=&quot;_blank&quot;&gt;mk-visual-explain&lt;/a&gt;工具扩展了explain，它提供了一种更直观的树形表现形式，使用方法很简单：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;mk-visual-explain &amp;lt;file_containing_explain_output&amp;gt;&lt;br /&gt;
mk-visual-explain -c &amp;lt;file_containing_query&amp;gt;&lt;br /&gt;
mysql -e &amp;quot;explain select * from mysql.user&amp;quot; | mk-visual-explain&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
也可以在MySQL命令行里通过设置pager的方式来执行：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;mysql&amp;gt; pager mk-visual-explain&lt;br /&gt;
mysql&amp;gt; explain [extended] select ... from ... where ...&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
==============================================================&lt;br /&gt;
&lt;br /&gt;
进入正题，为了让例子更具体化，我们先来建一个表，插入一点测试数据：&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `article` (&lt;br /&gt;
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,&lt;br /&gt;
`author_id` int(10) unsigned NOT NULL,&lt;br /&gt;
`category_id` int(10) unsigned NOT NULL,&lt;br /&gt;
&lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;`views` int(10) unsigned NOT NULL,&lt;br /&gt;
&lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;`comments` int(10) unsigned NOT NULL,&lt;/font&gt;&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt; `title` varbinary(255) NOT NULL,&lt;br /&gt;
`content` text NOT NULL,&lt;br /&gt;
PRIMARY KEY (`id`)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `article`&lt;br /&gt;
(`author_id`, `category_id`&lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;, `views`,&lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt; `comments`, &lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;`title`, `content`) VALUES&lt;br /&gt;
(1, 1, &lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;1, &lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;1, &lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;'1', '1'),&lt;br /&gt;
(2, 2, 2, &lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;2, &lt;/font&gt;&lt;font face=&quot;宋体&quot;&gt;'2', '2');&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
缺省只建了一个主键，没有建其他的索引。测试时，如果你时间充裕，应该尽可能插入多一点的测试数据，怎么说也应该保证几千条。如果数据量过少，可能会影响MySQL在索引选择上的判断。如此一来，一旦产品上线，数据量增加。索引往往不会按照你的预想工作。&lt;br /&gt;
&lt;br /&gt;
下面让我们设置一个任务：查询category_id为1且comments大于1的情况下，views最多的article_id。&lt;br /&gt;
&lt;br /&gt;
问题很简单，SQL也很简单：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;SELECT author_id&lt;br /&gt;
FROM `article`&lt;br /&gt;
WHERE category_id = 1 AND comments &amp;gt; 1&lt;br /&gt;
ORDER BY views DESC&lt;br /&gt;
LIMIT 1&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
下面让我们用explain命令查看索引效果：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;&lt;code class=&quot;sql&quot;&gt;&lt;span class=&quot;syntax&quot;&gt;&lt;span class=&quot;syntax_alpha syntax_alpha_reservedWord&quot;&gt;EXPLAIN SELECT author_id&lt;br /&gt;
FROM `article`&lt;br /&gt;
WHERE category_id = 1&lt;br /&gt;
AND comments &amp;gt; 1&lt;br /&gt;
ORDER BY views DESC&lt;br /&gt;
LIMIT 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/font&gt; &lt;br /&gt;
这时explain部分结果如下：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;type: ALL&lt;br /&gt;
key: NULL&lt;br /&gt;
Extra: Using where; Using filesort&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
显示数据库进行了全表扫描，没有用到索引，并且在过程中文件排序。这样的结果肯定是糟糕的，下面让我们通过建立索引优化一下它：&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;&lt;br /&gt;
ALTER TABLE `article` ADD INDEX x ( `category_id` , `comments`, `views` ) ;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
这时explain部分结果如下：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;type: range&lt;br /&gt;
key: x&lt;br /&gt;
Extra: Using where; Using filesort&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
虽然不再是全表扫描了，但是仍然存在文件排序。一般来说，文件排序都是由于ORDER  BY语句一起的，而我们已经把views字段放到了联合索引里面，为什么没有效果呢？这是因为按照BTree的工作原理，先排序category_id， 如果遇到相同的category_id则再排序comments，如果遇到相同的comments则再排序views。当comments字段在联合索引 里处于中间位置时，因为comments &amp;gt;  1条件是一个范围值（所谓range），MySQL目前无法利用索引再对后面的views部分进行检索，如果换成是是comments in ('a',  'b', 'c')这样的多等情况则可以，关于这一点，在High Performance MySQL一书中专门有过叙述，名为Avoiding  Multiple Range  Conditions，在复合索引里，仅仅只能保存一个range类型的查询字段，并且要放到复合索引的末尾，否则，range类型查询字段后面的索引无 效。详细的介绍大家可以自己查阅。从这个意义上来说，此时的category_id, comments,  views复合索引的效果不会比category_id, comments复合索引的效果好。&lt;br /&gt;
&lt;br /&gt;
文件排序是否会引起性能问题要视数据分布情况而定。这里有一个案例可供参考：&lt;a target=&quot;_blank&quot; href=&quot;http://www.mysqlperformanceblog.com/2007/02/16/using-index-for-order-by-vs-restricting-number-of-rows/&quot;&gt;Using index for ORDER BY vs restricting number of rows.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
多数情况下应该避免出现它。此时可以这样设置索引：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;ALTER TABLE `article` ADD INDEX y ( `category_id` , `views` ) ;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
这时explain部分结果如下：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;type: range&lt;br /&gt;
key: x&lt;br /&gt;
Extra: Using where; Using filesort&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
很奇怪，系统无视我们刚建立的y索引，还使用x索引。导致仍然存在文件排序。&lt;br /&gt;
&lt;br /&gt;
如果你也出现了类似的情况，可以使用强制索引：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;EXPLAIN SELECT author_id&lt;br /&gt;
FROM `article`&lt;br /&gt;
FORCE INDEX ( y )&lt;br /&gt;
WHERE category_id = 1&lt;br /&gt;
AND comments &amp;gt; 1&lt;br /&gt;
ORDER BY views DESC&lt;br /&gt;
LIMIT 1&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
这时explain部分结果如下：&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;宋体&quot;&gt;type: ref&lt;br /&gt;
key: y&lt;br /&gt;
Extra: Using where&lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;也可以删除x索引，那样系统会自动使用y索引（有时候MySQL比较傻，所以你得会使用FORCE INDEX）。&lt;br /&gt;
&lt;br /&gt;
后记：Explain的type显示的是访问类型，是较为重要的一个指标，结果值从好到坏依次是：&lt;br /&gt;
&lt;br /&gt;
system &amp;gt; const &amp;gt; eq_ref &amp;gt; ref &amp;gt; fulltext &amp;gt; ref_or_null  &amp;gt; index_merge &amp;gt; unique_subquery &amp;gt; index_subquery &amp;gt; range  &amp;gt; index &amp;gt; ALL&lt;br /&gt;
&lt;br /&gt;
一般来说，得保证查询至少达到range级别，最好能达到ref，否则就可能会出现性能问题。&lt;br /&gt;
&lt;br /&gt;
Explain的Extra信息也相当重要，如果此信息显示Using filesort或者Using  temporary的话，噩梦即将开始，不过也不尽然，比如说在一个WHERE ... ORDER BY ...  类型的查询里，很多时候我们无法创建一个兼顾WHERE和ORDER BY的索引，此时如果按照WHERE来确定索引，那么在ORDER  BY时，就必然会引起Using  filesort，文件排序是好是坏需要仔细判断，说白了就是看是先过滤再排序划算，还是先排序再过滤划算，正确答案取决与数据分布的情况，具体的情况可 以参考&lt;a href=&quot;http://www.mysqlperformanceblog.com/2007/02/16/using-index-for-order-by-vs-restricting-number-of-rows/&quot; target=&quot;_blank&quot;&gt;Using index for ORDER BY vs restricting number of rows&lt;/a&gt;。&lt;br /&gt;
&lt;br /&gt;
Explain具体含义参见此链接：&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/using-explain.html&quot; target=&quot;_blank&quot;&gt;http://dev.mysql.com/doc/refman/5.1/en/using-explain.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 转摘自----http://hi.baidu.com/thinkinginlamp/blog/item/eef0cd119239db17b8127b6f.html&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 13 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>mysql中explain的一些讲解1)</title>
            <link>http://www.9streets.cn/art-php-501.html</link>
            <description>&lt;p&gt;在 explain的帮助下，您就知道什么时候该给表添加索引，以使用索引来查找记录从而让select 运行更快。&lt;br /&gt;
如果由于不恰当使用索引而引起一些问题的话，可以运行 analyze table来更新该表的统计信息，例如键的基数，它能帮您在优化方面做出更好的选择。&lt;br /&gt;
&lt;br /&gt;
explain 返回了一行记录，它包括了 select语句中用到的各个表的信息。这些表在结果中按照mysql即将执行的查询中读取的顺序列出来。mysql用一次扫描多次连接（single- sweep,multi-join）的方法来解决连接。这意味着mysql从第一个表中读取一条记录，然后在第二个表中查找到对应的记录，然后在第三个表 中查找，依次类推。当所有的表都扫描完了，它输出选择的字段并且回溯所有的表，直到找不到为止，因为有的表中可能有多条匹配的记录下一条记录将从该表读 取，再从下一个表开始继续处理。&lt;br /&gt;
在mysql version 4.1中，explain输出的结果格式改变了，使得它更适合例如 union语句、子查询以及派生表的结构。更令人注意的是，它新增了2个字段： id和 select_type。当你使用早于mysql4.1的版本就看不到这些字段了。&lt;br /&gt;
explain结果的每行记录显示了每个表的相关信息，每行记录都包含以下几个字段：&lt;br /&gt;
&lt;br /&gt;
id &lt;br /&gt;
本次 select 的标识符。在查询中每个 select都有一个顺序的数值。&lt;br /&gt;
select_type &lt;br /&gt;
select 的类型，可能会有以下几种：&lt;br /&gt;
simple: 简单的 select （没有使用 union或子查询）&lt;br /&gt;
&lt;br /&gt;
primary: 最外层的 select。&lt;br /&gt;
&lt;br /&gt;
union: 第二层，在select 之后使用了 union。&lt;br /&gt;
&lt;br /&gt;
dependent union: union 语句中的第二个select，依赖于外部子查询&lt;br /&gt;
&lt;br /&gt;
subquery: 子查询中的第一个 select&lt;br /&gt;
&lt;br /&gt;
dependent subquery: 子查询中的第一个 subquery依赖于外部的子查询&lt;br /&gt;
&lt;br /&gt;
derived: 派生表 select（from子句中的子查询）&lt;br /&gt;
&lt;br /&gt;
table&lt;br /&gt;
记录查询引用的表。&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
表连接类型。以下列出了各种不同类型的表连接，依次是从最好的到最差的：&lt;br /&gt;
&lt;br /&gt;
system:表只有一行记录（等于系统表）。这是 const表连接类型的一个特例。&lt;br /&gt;
&lt;br /&gt;
const:表中最多只有一行匹配的记录，它在查询一开始的时候就会被读取出来。由于只有一行记录，在余下的优化程序里该行记录的字段值可以被当作是一个 恒定值。const表查询起来非常快，因为只要读取一次！const 用于在和 primary key 或unique 索引中有固定值比较的情形。下面的几个查询中，tbl_name 就是 c表了：&lt;br /&gt;
select * from tbl_name where primary_key=1; select * from tbl_namewhere primary_key_part1=1 and primary_key_part2=2;&lt;br /&gt;
&lt;br /&gt;
eq_ref:从该表中会有一行记录被读取出来以和从前一个表中读取出来的记录做联合。与const类型不同的是，这是最好的连接类型。它用在索引所有部 分都用于做连接并且这个索引是一个primary key 或 unique 类型。eq_ref可以用于在进行&amp;quot;=&amp;quot;做比较时检索字段。比较的值可以是固定值或者是表达式，表达示中可以使用表里的字段，它们在读表之前已经准备好 了。以下的几个例子中，mysql使用了eq_ref 连接来处理 ref_table：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select * from ref_table,other_table whereref_table.key_column=other_table.column; select * fromref_table,other_table whereref_table.key_column_part1=other_table.column andref_table.key_column_part2=1;&lt;br /&gt;
&lt;br /&gt;
ref: 该表中所有符合检索值的记录都会被取出来和从上一个表中取出来的记录作联合。ref用于连接程序使用键的最左前缀或者是该键不是 primary key 或 unique索引（换句话说，就是连接程序无法根据键值只取得一条记录）的情况。当根据键值只查询到少数几条匹配的记录时，这就是一个不错的连接类型。 ref还可以用于检索字段使用 =操作符来比较的时候。以下的几个例子中，mysql将使用 ref 来处理ref_table：&lt;br /&gt;
select * from ref_table where key_column=expr; select * fromref_table,other_table whereref_table.key_column=other_table.column; select * fromref_table,other_table whereref_table.key_column_part1=other_table.column andref_table.key_column_part2=1;&lt;br /&gt;
&lt;br /&gt;
ref_or_null: 这种连接类型类似 ref，不同的是mysql会在检索的时候额外的搜索包含null 值的记录。这种连接类型的优化是从mysql4.1.1开始的，它经常用于子查询。在以下的例子中，mysql使用ref_or_null 类型来处理 ref_table：&lt;br /&gt;
select * from ref_table where key_column=expr or key_column is null;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
unique_subquery: 这种类型用例如一下形式的 in 子查询来替换 ref：&lt;br /&gt;
value in (select primary_key from single_table where some_expr)&lt;br /&gt;
&lt;br /&gt;
unique_subquery: 只是用来完全替换子查询的索引查找函数效率更高了。&lt;br /&gt;
&lt;br /&gt;
index_subquery: 这种连接类型类似 unique_subquery。它用子查询来代替in，不过它用于在子查询中没有唯一索引的情况下，例如以下形式：&lt;br /&gt;
value in (select key_column from single_table where some_expr)&lt;br /&gt;
&lt;br /&gt;
range: 只有在给定范围的记录才会被取出来，利用索引来取得一条记录。key字段表示使用了哪个索引。key_len字段包括了使用的键的最长部分。这种类型时 ref 字段值是 null。range用于将某个字段和一个定植用以下任何操作符比较时 =, &amp;lt;&amp;gt;, &amp;gt;,&amp;gt;=, &amp;lt;, &amp;lt;=, is null, &amp;lt;=&amp;gt;, between, 或 in：&lt;br /&gt;
select * from tbl_name where key_column = 10; select * fromtbl_name where key_column between 10 and 20; select * from tbl_namewhere key_column in (10,20,30); select * from tbl_name wherekey_part1= 10 and key_part2 in (10,20,30);&lt;br /&gt;
&lt;br /&gt;
index: 连接类型跟 all 一样，不同的是它只扫描索引树。它通常会比 all快点，因为索引文件通常比数据文件小。mysql在查询的字段知识单独的索引的一部分的情况下使用这种连接类型。&lt;br /&gt;
&lt;br /&gt;
all: 将对该表做全部扫描以和从前一个表中取得的记录作联合。这时候如果第一个表没有被标识为const的话就不大好了，在其他情况下通常是非常糟糕的。正常地，可以通过增加索引使得能从表中更快的取得记录以避免all。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
possible_keys&lt;br /&gt;
possible_keys字段是指 mysql在搜索表记录时可能使用哪个索引。注意，这个字段完全独立于explain 显示的表顺序。这就意味着 possible_keys里面所包含的索引可能在实际的使用中没用到。如果这个字段的值是null，就表示没有索引被用到。这种情况下，就可以检查 where子句中哪些字段那些字段适合增加索引以提高查询的性能。就这样，创建一下索引，然后再用explain 检查一下。详细的查看章节&amp;quot;14.2.2 alter tablesyntax&amp;quot;。想看表都有什么索引，可以通过 show index from tbl_name来看。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
key&lt;br /&gt;
key字段显示了mysql实际上要用的索引。当没有任何索引被用到的时候，这个字段的值就是null。想要让mysql强行使用或者忽略在 possible_keys字段中的索引列表，可以在查询语句中使用关键字force index, use index,或 ignore index。如果是 myisam 和 bdb 类型表，可以使用 analyzetable 来帮助分析使用使用哪个索引更好。如果是 myisam类型表，运行命令 myisamchk --analyze也是一样的效果。详细的可以查看章节&amp;quot;14.5.2.1 analyze tablesyntax&amp;quot;和&amp;quot;5.7.2 table maintenance and crash recovery&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
key_len&lt;br /&gt;
key_len 字段显示了mysql使用索引的长度。当 key 字段的值为 null时，索引的长度就是 null。注意，key_len的值可以告诉你在联合索引中mysql会真正使用了哪些索引。&lt;br /&gt;
&lt;br /&gt;
ref&lt;br /&gt;
ref 字段显示了哪些字段或者常量被用来和 key配合从表中查询记录出来。&lt;br /&gt;
&lt;br /&gt;
rows&lt;br /&gt;
rows 字段显示了mysql认为在查询中应该检索的记录数。&lt;br /&gt;
&lt;br /&gt;
extra&lt;br /&gt;
&lt;br /&gt;
本字段显示了查询中mysql的附加信息。以下是这个字段的几个不同值的解释：&lt;br /&gt;
&lt;br /&gt;
distinct:mysql当找到当前记录的匹配联合结果的第一条记录之后，就不再搜索其他记录了。&lt;br /&gt;
&lt;br /&gt;
not exists:mysql在查询时做一个 left join优化时，当它在当前表中找到了和前一条记录符合 left join条件后，就不再搜索更多的记录了。下面是一个这种类型的查询例子：&lt;br /&gt;
select * from t1 left join t2 on t1.id=t2.id where t2.id isnull;&lt;br /&gt;
&lt;br /&gt;
假使 t2.id 定义为 not null。这种情况下，mysql将会扫描表 t1并且用 t1.id 的值在 t2 中查找记录。当在 t2中找到一条匹配的记录时，这就意味着 t2.id 肯定不会都是null，就不会再在 t2 中查找相同 id值的其他记录了。也可以这么说，对于 t1 中的每个记录，mysql只需要在t2 中做一次查找，而不管在 t2 中实际有多少匹配的记录。&lt;br /&gt;
&lt;br /&gt;
range checked for each record (index map: #)&lt;br /&gt;
&lt;br /&gt;
mysql没找到合适的可用的索引。取代的办法是，对于前一个表的每一个行连接，它会做一个检验以决定该使用哪个索引（如果有的话），并且使用这个索引来从表里取得记录。这个过程不会很快，但总比没有任何索引时做表连接来得快。&lt;br /&gt;
&lt;br /&gt;
using filesort: mysql需要额外的做一遍从而以排好的顺序取得记录。排序程序根据连接的类型遍历所有的记录，并且将所有符合 where条件的记录的要排序的键和指向记录的指针存储起来。这些键已经排完序了，对应的记录也会按照排好的顺序取出来。&lt;br /&gt;
using index&lt;br /&gt;
&lt;br /&gt;
字段的信息直接从索引树中的信息取得，而不再去扫描实际的记录。这种策略用于查询时的字段是一个独立索引的一部分。&lt;br /&gt;
&lt;br /&gt;
using temporary: mysql需要创建临时表存储结果以完成查询。这种情况通常发生在查询时包含了groupby 和 order by 子句，它以不同的方式列出了各个字段。&lt;br /&gt;
using where&lt;br /&gt;
&lt;br /&gt;
where子句将用来限制哪些记录匹配了下一个表或者发送给客户端。除非你特别地想要取得或者检查表种的所有记录，否则的话当查询的extra 字段值不是 using where 并且表连接类型是 all 或 index时可能表示有问题。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
如果你想要让查询尽可能的快，那么就应该注意 extra 字段的值为usingfilesort 和 using temporary 的情况。&lt;br /&gt;
&lt;br /&gt;
你可以通过 explain 的结果中 rows字段的值的乘积大概地知道本次连接表现如何。它可以粗略地告诉我们mysql在查询过程中会查询多少条记录。如果是使用系统变量 max_join_size 来取得查询结果，这个乘积还可以用来确定会执行哪些多表select 语句。&lt;br /&gt;
下面的例子展示了如何通过 explain提供的信息来较大程度地优化多表联合查询的性能。&lt;br /&gt;
假设有下面的 select 语句，正打算用 explain 来检测：&lt;br /&gt;
explain select tt.ticketnumber, tt.timein, tt.projectreference,tt.estimatedshipdate, tt.actualshipdate, tt.clientid,tt.servicecodes, tt.repetitiveid, tt.currentprocess,tt.currentdppers tt.recordvolume, tt.dpprinted, et.country,et_1.country, do.custname from tt, et, et as et_1, do wherett.submittime is null and tt.actualpc = et.employid andtt.assignedpc = et_1.employid and tt.clientid = do.custnmbr;&lt;br /&gt;
&lt;br /&gt;
在这个例子中，先做以下假设：&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
要比较的字段定义如下：&lt;br /&gt;
table&amp;nbsp; column&amp;nbsp; columntype &lt;br /&gt;
tt&amp;nbsp; actualpc char(10) &lt;br /&gt;
tt&amp;nbsp; assignedpc char(10) &lt;br /&gt;
tt&amp;nbsp; clientid char(10) &lt;br /&gt;
et&amp;nbsp; employid char(15) &lt;br /&gt;
do&amp;nbsp; custnmbr char(15) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
数据表的索引如下：&lt;br /&gt;
table&amp;nbsp; index &lt;br /&gt;
tt&amp;nbsp; actualpc &lt;br /&gt;
tt&amp;nbsp; assignedpc &lt;br /&gt;
tt&amp;nbsp; clientid &lt;br /&gt;
et&amp;nbsp; employid (primary key) &lt;br /&gt;
do&amp;nbsp; custnmbr (primary key) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tt.actualpc 的值是不均匀分布的。&lt;br /&gt;
&lt;br /&gt;
在任何优化措施未采取之前，经过 explain分析的结果显示如下：&lt;br /&gt;
table type possible_keys key key_len ref rows extra &lt;br /&gt;
et all primarynull null null 74 &lt;br /&gt;
do all primary null null null 2135 &lt;br /&gt;
et_1 allprimary null null null 74 &lt;br /&gt;
tt all assignedpc, null null null 3872 clientid, actualpc range checked for each record (key map: 35)&lt;br /&gt;
&lt;br /&gt;
由于字段 type 的对于每个表值都是all，这个结果意味着mysql对所有的表做一个迪卡尔积；这就是说，每条记录的组合。这将需要花很长的时间，因为需要扫描每个表总 记录数乘积的总和。在这情况下，它的积是74 * 2135 * 74 * 3872 = 45,268,558,720条记录。如果数据表更大的话，你可以想象一下需要多长的时间。&lt;br /&gt;
在这里有个问题是当字段定义一样的时候，mysql就可以在这些字段上更快的是用索引（对isam类型的表来说，除非字段定义完全一样，否则不会使用索 引）。在这个前提下，varchar和 char是一样的除非它们定义的长度不一致。由于 tt.actualpc 定义为char(10)，et.employid 定义为 char(15)，二者长度不一致。&lt;br /&gt;
为了解决这个问题，需要用 alter table 来加大 actualpc的长度从10到15个字符：&lt;br /&gt;
mysql&amp;gt; alter table tt modify actualpc varchar(15);&lt;br /&gt;
&lt;br /&gt;
现在 tt.actualpc 和 et.employid 都是 varchar(15)&lt;br /&gt;
了。再来执行一次 explain 语句看看结果：&lt;br /&gt;
table type possible_keys key key_len ref rows extra &lt;br /&gt;
tt allassignedpc, null null null 3872 using clientid, where actualpc &lt;br /&gt;
do all primary null null null 2135 range checked for each record (keymap: 1) &lt;br /&gt;
et_1 all primary null null null 74 range checked for eachrecord (key map: 1) et eq_ref primary primary 15 tt.actualpc 1&lt;br /&gt;
&lt;br /&gt;
这还不够，它还可以做的更好：现在 rows值乘积已经少了74倍。这次查询需要用2秒钟。&lt;br /&gt;
第二个改变是消除在比较 tt.assignedpc = et_1.employid 和 tt.clientid= do.custnmbr 中字段的长度不一致问题：&lt;br /&gt;
mysql&amp;gt; alter table tt modify assignedpc varchar(15), -&amp;gt;modify clientid varchar(15);&lt;br /&gt;
&lt;br /&gt;
现在 explain 的结果如下：&lt;br /&gt;
table type possible_keys key key_len ref rows extra &lt;br /&gt;
et all primary null null null 74 &lt;br /&gt;
tt ref assignedpc, actualpc 15 et.employid 52 using clientid, where actualpc &lt;br /&gt;
et_1 eq_ref primary primary 15 tt.assignedpc 1 &lt;br /&gt;
do eq_ref primary primary 15 tt.clientid 1&lt;br /&gt;
&lt;br /&gt;
这看起来已经是能做的最好的结果了。&lt;br /&gt;
遗留下来的问题是，mysql默认地认为字段 tt.actualpc的值是均匀分布的，然而表 tt并非如此。幸好，我们可以很方便的让mysql分析索引的分布：&lt;br /&gt;
mysql&amp;gt; analyze table tt;&lt;br /&gt;
&lt;br /&gt;
到此为止，表连接已经优化的很完美了，explain 的结果如下：&lt;br /&gt;
table type possible_keys key key_len ref rows extra &lt;br /&gt;
tt all assignedpc null null null 3872 using clientid, where actualpc &lt;br /&gt;
et eq_ref primary primary 15 tt.actualpc 1 &lt;br /&gt;
et_1 eq_ref primary primary 15 tt.assignedpc 1 &lt;br /&gt;
do eq_ref primary primary 15 tt.clientid 1&lt;br /&gt;
&lt;br /&gt;
请注意，explain 结果中的 rows字段的值也是mysql的连接优化程序大致猜测的，请检查这个值跟真实值是否基本一致。如果不是，可以通过在select 语句中使用 straight_join 来取得更好的性能，同时可以试着在from分句中用不同的次序列出各个表。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 转摘自----http://www.blogjava.net/persister/archive/2008/10/27/236813.html&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 13 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>做完与做好之感受</title>
            <link>http://www.9streets.cn/art-php-500.html</link>
            <description>&lt;p&gt;在工作之余，偷懒回顾了一下前段时间的工作体会：今年我选择回到了聚冠，不为别的原因，&amp;ldquo;腾讯外包项目就没有可以再改进的地方了吗？&amp;rdquo;这是李无韦老大一句.&lt;br /&gt;
这句话让我思考了很多，这不改这一点，我想我到哪也是提升不了的，归根原因：原来自己在做事态度上，一直都是一个执行者心态，而不是策划者的心态去对待.在文哥的指导下，经过这一两个星期对以前所有项目问题整理，印证了原来我们是可以做的更好的。&amp;rdquo;屁股决定脑袋&amp;ldquo;这句话听了很多次，但都没有这一次触动大.如像很多技术人员一样，只会想到上级把分配下来的任务完成，都没有想到人家这块业务的原由，不知道人家的做的根本原因，乍么组成这块业务，没有对自己有更高的要求。做了快一年腾讯外包项目经理，一直都只限于风险控制，代码开发，需求点分析，项目经理本来是推进项目进度的角色，却重来没有考虑过每一块需求背后的意义,每一个项目质量还可不可做的更好，这一切显的很安分，正是这样，才会了前段时间的迷茫，感觉离自己向管理层路线奔跑还遥不可及，用同事分享会一句话概括&amp;ldquo;不知道自己不知道，知道自己不知道&amp;rdquo;，做任务事情要考虑到背后的涵意，学会用脑袋去想问题。&lt;br /&gt;
&lt;br /&gt;
&amp;ldquo;什么叫做技术，技术就是客户认可的东西那就叫做技术&amp;rdquo;，在这里引用无韦老大一句话。同时希望一直追求技术的朋友，在追求技术的同时，多多接触业务方面上的知识。&lt;br /&gt;
这是以下对自己近段时间一些小总结：&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 1。多沟通，多做事，多用脑，多寻找接受客户的机会，这样才会有更多机会去学习和理解客户的需求&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 2。做任何事情的时候想想：能不能做得更好 &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 3。这件事背后的目的是什么&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 4。别人能不能看懂你做的东西。&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 5。能擅长表达自己的观点&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Sun, 12 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>mysql中case when实例详解</title>
            <link>http://www.9streets.cn/art-php-499.html</link>
            <description>&lt;p&gt;博文和其评论join的出来的条数结果如果是0条为null值，所以在查询的时候用了case when来判断评论条数大于0时等于实际数，否则0条，刚开始对mysql case when条件语句理解不通，查出来的结果都是0条。语句如下：&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;&lt;span onclick=&quot;copyIdText('code_5563')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;
&lt;div id=&quot;code_5563&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-sql&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//最新十条文章&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$sql=&lt;span class=&quot;string&quot;&gt;'SELECT&amp;nbsp;a.art_id,&amp;nbsp;a.art_title,&amp;nbsp;a.art_date,&amp;nbsp;a.art_class,&amp;nbsp;a.art_rq,&amp;nbsp;a.art_cont&amp;nbsp;,&amp;nbsp;b.art_name&amp;nbsp;AS&amp;nbsp;cart_name,(case&amp;nbsp;c.renum&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;c.renum&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;then&amp;nbsp;c.renum&amp;nbsp;else&amp;nbsp;0&amp;nbsp;end)&amp;nbsp;as&amp;nbsp;crenum&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;FROM&amp;nbsp;tm_art&amp;nbsp;a&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;LEFT&amp;nbsp;JOIN&amp;nbsp;tm_art_class&amp;nbsp;b&amp;nbsp;ON&amp;nbsp;a.art_class&amp;nbsp;=&amp;nbsp;b.art_id&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;LEFT&amp;nbsp;JOIN&amp;nbsp;(&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;SELECT&amp;nbsp;tm_art_re.re_artid&amp;nbsp;AS&amp;nbsp;artid,count(&amp;nbsp;tm_art_re.re_artid&amp;nbsp;)&amp;nbsp;AS&amp;nbsp;renum&amp;nbsp;FROM&amp;nbsp;tm_art_re&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;tm_art_re.re_artid&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;)&amp;nbsp;c&amp;nbsp;ON&amp;nbsp;a.art_id&amp;nbsp;=&amp;nbsp;c.artid&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;string&quot;&gt;ORDER&amp;nbsp;BY&amp;nbsp;a.art_id&amp;nbsp;DESC&amp;nbsp;limit&amp;nbsp;'&lt;/span&gt;&lt;span&gt;.$&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;size&lt;/span&gt;&lt;span&gt;*$mpage.&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;','&lt;/span&gt;&lt;span&gt;.$&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;size&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;细读了一下文档，原来是自己在用法上理解不到位，解决方法：把case c.renum when 改为case when 。下面我会贴上网上相关mysql case语法，并在下面随其贴了两个小例子，大家可以比对一下两种用法上的小区别，我在里面个人对其用法加了一些小说明,如有理解不到位的地方，希望可以共同讨论下。&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;&lt;span onclick=&quot;copyIdText('code_5932')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;
&lt;div id=&quot;code_5932&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-sql&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;语法&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;简单&amp;nbsp;&lt;span class=&quot;func&quot;&gt;CASE&lt;/span&gt;&lt;span&gt;&amp;nbsp;函数：&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;CASE&lt;/span&gt;&lt;span&gt;&amp;nbsp;input_expression&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;WHEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;when_expression&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;THEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;result_expression&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;...n&amp;nbsp;]&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;ELSE&lt;/span&gt;&lt;span&gt;&amp;nbsp;else_result_expression&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;END&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;CASE&lt;/span&gt;&lt;span&gt;&amp;nbsp;搜索函数：&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;CASE&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;WHEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;Boolean_expression&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;THEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;result_expression&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;...n&amp;nbsp;]&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;ELSE&lt;/span&gt;&lt;span&gt;&amp;nbsp;else_result_expression&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;END&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;参数&lt;br /&gt;
input_expression&lt;/p&gt;
&lt;p&gt;是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft&amp;reg; SQL Server&amp;trade; 表达式。&lt;/p&gt;
&lt;p&gt;WHEN when_expression&lt;/p&gt;
&lt;p&gt;使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL  Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同，或者是隐性转换。&lt;/p&gt;
&lt;p&gt;n&lt;/p&gt;
&lt;p&gt;占位符，表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。&lt;/p&gt;
&lt;p&gt;THEN result_expression&lt;/p&gt;
&lt;p&gt;当 input_expression = when_expression 取值为 TRUE，或者 Boolean_expression 取值为 TRUE 时返回的表达式。result expression 是任意有效的 SQL Server 表达式。&lt;/p&gt;
&lt;p&gt;ELSE else_result_expression&lt;/p&gt;
&lt;p&gt;当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE，CASE 将返回 NULL  值。Else_result_expression 是任意有效的 SQL Server 表达式。Else_result_expression  和所有 result_expression 的数据类型必须相同，或者必须是隐性转换。&lt;/p&gt;
&lt;p&gt;WHEN Boolean_expression&lt;/p&gt;
&lt;p&gt;使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。&lt;/p&gt;
&lt;p&gt;结果类型&lt;br /&gt;
从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息，请参见数据类型的优先顺序。&lt;/p&gt;
&lt;p&gt;结果值&lt;br /&gt;
简单 CASE 函数：&lt;br /&gt;
计算 input_expression，然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
返回第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
如果没有取值为 TRUE 的 input_expression = when_expression，则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression；若没有指定 ELSE 子句，则返回 NULL 值。 &lt;br /&gt;
CASE 搜索函数：&lt;br /&gt;
按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;如果没有取值为 TRUE 的 Boolean_expression，则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression；若没有指定 ELSE 子句，则返回 NULL 值。&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;&lt;span onclick=&quot;copyIdText('code_9734')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;
&lt;div id=&quot;code_9734&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-sql&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;Case&lt;/span&gt;&lt;span&gt;具有两种格式。简单&lt;/span&gt;&lt;span class=&quot;func&quot;&gt;Case&lt;/span&gt;&lt;span&gt;函数和&lt;/span&gt;&lt;span class=&quot;func&quot;&gt;Case&lt;/span&gt;&lt;span&gt;搜索函数。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;--简单Case函数&lt;/span&gt;&lt;span&gt; 如果case有条件，when 只能是对条件值的罗列，不能再加条件，否则出错&amp;nbsp; &lt;br /&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;CASE&lt;/span&gt;&lt;span&gt;&amp;nbsp;sex&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;WHEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'1'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;THEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'男'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;WHEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'2'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;THEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'女'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;ELSE&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'其他'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;END&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 如果case 没有条件，when 里面可以加个条件判断&lt;br /&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;--Case搜索函数&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;CASE&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;WHEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;sex&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'1'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;THEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'男'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;WHEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;sex&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'2'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;THEN&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'女'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;ELSE&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'其他'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;END&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Tue, 07 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>session自动退出登录解决方法</title>
            <link>http://www.9streets.cn/art-php-498.html</link>
            <description>&lt;p&gt;先说说现象：今天登录&lt;a href=&quot;http://www.9streets.cn/&quot;&gt;9街&lt;/a&gt;后台的时候，很奇怪一登录就退出，后台代码一直没有改动过，查了一下原因，找到了根本原因，后面会贴上找到的相关文档。解决办法就是在产生的session的页面session_star();加上以下三句代码：&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;div class=&quot;codeHead&quot;&gt;&lt;span class=&quot;lantxt&quot;&gt;PHP Code&lt;/span&gt;&lt;span class=&quot;copyCodeText&quot; style=&quot;cursor:pointer&quot; onclick=&quot;copyIdText('code_1425')&quot;&gt;复制内容到剪贴板&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;code_1425&quot;&gt;
&lt;ol class=&quot;dp-c&quot; start=&quot;1&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;ini_set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;session.gc_divisor&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;1);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;ini_set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;session.gc_maxlifetime&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;5);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;func&quot;&gt;ini_set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;session.cookie_lifetime&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;10);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;以下是转摘网上文档&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;helvetica,arial,sans-serif&quot; size=&quot;2&quot;&gt;首先 gc是什么?&lt;br /&gt;
&lt;br /&gt;
gc, 是garbage collection 的简称.这个进程一般都跟着每起一个SESSION而开始运行的.gc目的是为了在session文件过期以后自动销毁删除这些文件.&lt;br /&gt;
&lt;br /&gt;
1、session_gc_probaility&lt;br /&gt;
PHP默认不是每个SESSION启动都会启动一个GC来跟踪。这个参数是控制gc跟session启动概率。默认 1。值越大，概率越大。&lt;br /&gt;
&lt;br /&gt;
2、session.gc_divisor&lt;br /&gt;
功能同上。 默认100。值越小，概率越大。&lt;br /&gt;
&lt;br /&gt;
3、session.gc_maxlifetime &lt;br /&gt;
超过设定时间，gc就认为是垃圾文件。&lt;br /&gt;
&lt;br /&gt;
总结&lt;br /&gt;
session_gc_probaility和session.gc_divisor是一对控制gc启动的概率的两个参数。前者是分子，后者是分母。默认是1/100。 1%的几率。 也就是说100个请求中只有一个gc会伴随100个中的某个请求而启动。&lt;br /&gt;
&lt;/font&gt;session处理是所有的Web应用都必须面对的问题。PHP中对session有效期的处理，和其他的解决方案有着很大的不同，这是和PHP的工作机制相关的。&lt;/p&gt;
&lt;div id=&quot;sina_keyword_ad_area2&quot; class=&quot;articalContent  &quot;&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 在传统的client/server应用中，对于session失效的情况，可以交给网络协议自己来处理。无论是client端主动关闭连接，还是因为网络异常而导致的连接中断，server端都能够得到通知，触发连接中断的事件。只要编程响应这一事件，执行指定的操作即可。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 但对于web应用来说，情况却完全不一样。HTTP协议本身是无状态的，也就是说，每当client/server完成一次请求/响应的过程后，连接就会被断开。在断开连接以后，server并不知道client是否继续&amp;ldquo;在线&amp;rdquo;，还会继续发送下一次请求。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 换句话说，无论client端的用户已经关闭了浏览器窗口，还是用户仅仅在阅读当前网页并准备在下一秒钟继续浏览，或者用户因为Windows崩溃/停电/硬盘坏掉/网线被拔/地球爆炸而彻底无法再发送下一个请求，server都一无所知。（在HTTP 1.1中，浏览器可以通过keep-alive参数，来通知server不要在响应请求后主动断开连接，从而实现物理上的长连接。但是，这只是为了提高网络传输的性能而采取的措施，HTTP 在逻辑上仍然是无状态的。）因此，只能通过某种模拟的方式来判断当前session是否有效。如果某个session在超过一段时间后没有对server 端发出请求，server都会判断用户已经&amp;ldquo;离线&amp;rdquo;，当前session失效，并触发连接中断的事件。要做到这一点，server需要运行一个后台线程，定时扫描所有的session信息，判断session是否已经超时。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; PHP处理session的原理也不例外，但是在具体的实现方式上，却与众不同。这是因为，由于PHP的工作机制，它并没有一个后台线程，来定时地扫描session信息并判断其是否失效。它的解决之道是，当一个有效请求发生时，PHP会根据某个概率，来决定是否调用一个GC（Garbage Collector）。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; GC的工作，就是扫描所有的session信息，用当前时间减去session的最后修改时间（modified date），同配置参数（configuration option）session.gc_maxlifetime的值进行比较，如果生存时间已经超过gc_maxlifetime，就把该session删除。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 这是很容易理解的，因为如果每次请求都要调用GC代码，那么PHP的效率就会低得令人吃不消了。这个概率取决于配置参数 session.gc_probability/session.gc_divisor的值（可以通过php.ini或者ini_set()函数来修改）。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 默认情况下，session.gc_probability = 1，session.gc_divisor=100，也就是说有1%的可能性会启动GC。这三个参 数，session.gc_maxlifetime/session.gc_probability/session.gc_divisor都可以通过 php.ini或者ini_set()函数来修改。但要记得，如果使用ini_set()函数的话，必须在每一个页面的开始处都调用 ini_set()。&lt;br /&gt;
这又导致了另外一个问题，gc_maxlifetime只能保证session生存的最短时间，并不能够保存在超过这一时间之后session信息立即会得到删除。因为GC是按概率启动的，可能在某一个长时间内都没有被启动，那么大量的session在超过 gc_maxlifetime以后仍然会有效。当然，发生这种情况的概率很小，但是如果你的应用对 session的失效期要求很精确的话，这会导致很严重的问题。解决这个问题的一个方法是，把 session.gc_probability/session.gc_divisor的机率提高，如果提到100%，就会彻底解决这个问题，但显然会对性能造成严重的影响。另一个方法是放弃PHP的GC，自己在代码中判断当前session的生存时间，如果超出了 gc_maxlifetime，就清空当前session。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; PHP中的session有效期默认是1440秒（24分钟），也就是说，客户端超过24分钟没有刷新，当前session就会失效。要修改这个默认值，正确的解决办法是修改配置参数session.gc_maxlifetime。&lt;br /&gt;
我曾经在网上搜索过这个问题的解决方式，找到的结果千奇百怪。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 有的说要设置&amp;ldquo;session_life_time&amp;rdquo;，据我知所，PHP中没有这个参数。有的说要调用session_set_cookie_params，或者设置 session.cookie_lifetime，这仅仅用于设置client端cookie的生存时间，换言之，只当client端cookie的生存时间小于server端的session生存期时，修改这个值才有效，并且最长不能超过server端的session生存期，原因很简单，当 server端的session已经失效时，client端cookie的生存时间再长也是没有意义的。还有的说要调用 session_cache_expire，这个参数用于通知浏览器和proxy，当前页面的内容应该被缓存多长时间，和session的生存期并没有直接关系。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 听起来，这种解决方案很完美。但是，当你在实际中尝试修改session.gc_maxlifetime的值的时候，你很可能会发现，这个参数基本不起作用，session有效期仍然保持24分钟的默认值。甚至可能出现，在开发环境下工作正常，在服务器上却无效！&lt;br /&gt;
为了彻底解决这个问题，需要对PHP的工作细节进行进一步的分析。&lt;br /&gt;
在默认情况下，PHP 中的session信息会以文本文件的形式，被保存在系统的临时文件目录中。这个路径由配置参数session.save_path指定。在Linux下，这一路径通常为\tmp，在 Windows下通常为C:\Windows\Temp。当服务器上有多个PHP应用时，它们会把自己的session文件都保存在同一个目录中（因为它们使用同一个session.save_path参数）。同样地，这些PHP应用也会按一定机率启动GC，扫描所有的session文件。&lt;br /&gt;
问题在于，GC在工作时，并不会区分不同站点的session。举例言之，站点A的gc_maxlifetime设置为2小时，站点B的 gc_maxlifetime设置为默认的24分钟。当站点B的GC启动时，它会扫描公用的临时文件目录，把所有超过24分钟的session文件全部删除掉，而不管它们来自于站点A或B。这样，站点A的gc_maxlifetime设置就形同虚设了。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 找到问题所在，解决起来就很简单了。在页面的开始处调用session_save_path()函数，它能够修改session.save_path参 数，把保存session的目录指向一个专用的目录，例如\tmp\myapp\。这样，gc_maxlifetime参数就工作正常了。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 使用公用的session.save_path还会导致安全性问题，因为这意味着，同一台服务器上的其它PHP程序也可以读取你的站点的session文 件，这可能被用于黑客攻击。另一个问题是效率：在一个繁忙的站点中，可能存在成千上万个session文件，而把许多不同网站的session文件都放在 同一个目录下，无论是对单个文件的读写，还是遍历所有文件进行GC，都无疑会导致性能的降低。因此，如果你的PHP应用和别的PHP应用运行在同一台服务 器上的话，强烈建议你使用自己的 session.save_path。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 严格地来说，这算是PHP的一个bug。当PHP在进行GC时，它应该区别来自不同站点的session文件，并应用不同的gc_maxlifetime值。目前，最新的PHP 5.2.X仍然存在这个问题。&lt;br /&gt;
&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; 上文说到，在一个繁忙的站点中，可能存在成千上万个session文件，即使区分了不同站点的session.save_path目录，单个站点的session文件数目仍然可能导致效率问题。&lt;/div&gt;
&lt;p&gt;&lt;font face=&quot;helvetica,arial,sans-serif&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Fri, 03 Feb 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>sql有关like查询的一些用法</title>
            <link>http://www.9streets.cn/art-php-497.html</link>
            <description>&lt;p&gt;执行数据库查询时，有完整查询和模糊查询之分。&lt;/p&gt;
&lt;p&gt;　　一般模糊语句如下：&lt;/p&gt;
&lt;p&gt;　　SELECT 字段 FROM 表 WHERE 某字段 Like 条件&lt;/p&gt;
&lt;p&gt;　　其中关于条件，SQL提供了四种匹配模式：&lt;/p&gt;
&lt;p&gt;　　&lt;strong&gt;1，%&lt;/strong&gt;：表示任意个或多个字符。可匹配任意类型和长度的字符，有些情况下若是中文，请使用两个百分号(%%)表示。&lt;/p&gt;
&lt;p&gt;　　比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'&lt;/p&gt;
&lt;p&gt;　　将会把u_name为&amp;ldquo;张三&amp;rdquo;，&amp;ldquo;张猫三&amp;rdquo;、&amp;ldquo;三脚猫&amp;rdquo;，&amp;ldquo;唐三藏&amp;rdquo;等等有&amp;ldquo;三&amp;rdquo;的记录全找出来。&lt;/p&gt;
&lt;p&gt;　　另外，如果需要找出u_name中既有&amp;ldquo;三&amp;rdquo;又有&amp;ldquo;猫&amp;rdquo;的记录，请使用and条件&lt;/p&gt;
&lt;p&gt;　　SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'&lt;/p&gt;
&lt;p&gt;　　若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'&lt;/p&gt;
&lt;p&gt;　　虽然能搜索出&amp;ldquo;三脚猫&amp;rdquo;，但不能搜索出符合条件的&amp;ldquo;张猫三&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;　　&lt;strong&gt;2，_&lt;/strong&gt;： 表示任意单个字符。匹配单个任意字符，它常用来限制表达式的字符长度语句：&lt;/p&gt;
&lt;p&gt;　　比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'&lt;/p&gt;
&lt;p&gt;　　只找出&amp;ldquo;唐三藏&amp;rdquo;这样u_name为三个字且中间一个字是&amp;ldquo;三&amp;rdquo;的;&lt;/p&gt;
&lt;p&gt;　　再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';&lt;/p&gt;
&lt;p&gt;　　只找出&amp;ldquo;三脚猫&amp;rdquo;这样name为三个字且第一个字是&amp;ldquo;三&amp;rdquo;的;&lt;/p&gt;
&lt;p&gt;　　&lt;strong&gt;3，[ ]&lt;/strong&gt;：表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围，要求所匹配对象为它们中的任一个。&lt;/p&gt;
&lt;p&gt;　　比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'&lt;/p&gt;
&lt;p&gt;　　将找出&amp;ldquo;张三&amp;rdquo;、&amp;ldquo;李三&amp;rdquo;、&amp;ldquo;王三&amp;rdquo;(而不是&amp;ldquo;张李王三&amp;rdquo;);&lt;/p&gt;
&lt;p&gt;　　如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为&amp;ldquo;0-4&amp;rdquo;、&amp;ldquo;a-e&amp;rdquo;&lt;/p&gt;
&lt;p&gt;　　SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'&lt;/p&gt;
&lt;p&gt;　　将找出&amp;ldquo;老1&amp;rdquo;、&amp;ldquo;老2&amp;rdquo;、&amp;hellip;&amp;hellip;、&amp;ldquo;老9&amp;rdquo;;&lt;/p&gt;
&lt;p&gt;　　&lt;strong&gt;4，[^ ]&lt;/strong&gt; ：表示不在括号所列之内的单个字符。其取值和 [] 相同，但它要求所匹配对象为指定字符以外的任一个字符。&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　将找出不姓&amp;ldquo;张&amp;rdquo;、&amp;ldquo;李&amp;rdquo;、&amp;ldquo;王&amp;rdquo;的&amp;ldquo;赵三&amp;rdquo;、&amp;ldquo;孙三&amp;rdquo;等;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　将排除&amp;ldquo;老1&amp;rdquo;到&amp;ldquo;老4&amp;rdquo;，寻找&amp;ldquo;老5&amp;rdquo;、&amp;ldquo;老6&amp;rdquo;、&amp;hellip;&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　5，查询内容包含通配符时&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　由于通配符的缘故，导致我们查询特殊字符&amp;ldquo;%&amp;rdquo;、&amp;ldquo;_&amp;rdquo;、&amp;ldquo;[&amp;rdquo;的语句无法正常实现，而把特殊字符用&amp;ldquo;[ ]&amp;rdquo;括起便可正常查询。据此我们写出以下函数：&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　function sqlencode(str)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　str=replace(str,&amp;quot;';&amp;quot;,&amp;quot;';';&amp;quot;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　str=replace(str,&amp;quot;[&amp;quot;,&amp;quot;[[]&amp;quot;) ';此句一定要在最先&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　str=replace(str,&amp;quot;_&amp;quot;,&amp;quot;[_]&amp;quot;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　str=replace(str,&amp;quot;%&amp;quot;,&amp;quot;[%]&amp;quot;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　sqlencode=str&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 128, 0); &quot;&gt;　　end function&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----转摘自http://www.php100.com/html/webkaifa/database/SQLserver/2012/0201/9753.html&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Tue, 31 Jan 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>window7下开启telnet服务</title>
            <link>http://www.9streets.cn/art-php-496.html</link>
            <description>&lt;p&gt;在家里电脑win7试了一下telnet命令,提示不是内部命令,也不是可用运行程序,查了一下资料,原来window7默认是没有telnet服务功能,如果在服务管理那里也是找不到的,因为根本不存这个服务,要新添加telnet服务才行&lt;br /&gt;
&lt;br /&gt;
1.&amp;quot;控制面板&amp;quot; 一〉&amp;quot;程序&amp;quot; 一〉&amp;quot;打开或关闭windows功能&amp;quot;，在里面你可以看到许多服务项，选择&amp;quot;telnet服务器&amp;quot;和&amp;quot;telnet客户端&amp;quot;确定即可。这样你再回&amp;quot;服务项&amp;quot;或者services.msc里面就可以看到telnet服务了,状态为禁用状态,还需下一步&lt;br /&gt;
&lt;br /&gt;
2、通过&amp;quot;控制面板&amp;quot;--〉&amp;quot;管理工具&amp;quot;一〉&amp;quot;服务&amp;quot;或者&amp;quot;services.msc进入服务项列表之后，找到telnet，可以看到它是被禁用的，此时你需要在&amp;quot;禁用&amp;quot;右键选择&amp;quot;属&lt;br /&gt;
性&amp;quot;并在里面将&amp;quot;禁用&amp;quot;改为&amp;quot;手动&amp;quot;，然后再启动状态栏右键选择&amp;quot;启动&amp;quot;。这样你机器的telnet服务就启动啦。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;data:image/png;base64,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&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Fri, 13 Jan 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>zend studio5.5在window7不能运行解决方法</title>
            <link>http://www.9streets.cn/art-php-495.html</link>
            <description>&lt;p&gt;为了跟上大众，决定把PHP工具由dreaweaver改为zend studio,记得刚出来跟着老师搞项目的时候就用这个工具，对刚开始接触PHP菜鸟来说，zend studio还是蛮好用的。说说这一次安装的问题的吧，以前一直都是在XP上安装，这次在家里电脑window7上装了一个，成功装了，但是点击运行的时候，啥反应的都没有。window7兼容性不是很好，但安装软件时候有部分软件要以兼容的形式才装得了。。。这次也是用同样办法解决了，方法：右击zendstudio5.5.exe-&amp;gt;属性-&amp;gt;兼容性（选项卡）-&amp;gt; 钩选 &amp;quot;以兼容模式运行这个程序&amp;quot;---下拉框选择&amp;ldquo;Windows Vista&amp;rdquo; ,接下来和在XP上运行安装一样，看图&lt;br /&gt;
&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/p&gt;
&lt;p&gt;PS:其实每个工具都有自己的特点，例如：dw就用jquery提示功能，zt6.0 以下就没有(有兴趣的可以玩玩高级点版本，增加了对前台CSS,JS,jquery的支持)，dw对于PHP开发是过程式，ZT是面向式。而对于开发工具来说它只是一种辅助性的东西，具体用什么工具并不是我们最终需要的结果，选什么工具还是看每个人的特点去用。。。&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 02 Jan 2012 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>剖析自己，重心开始</title>
            <link>http://www.9streets.cn/art-php-494.html</link>
            <description>&lt;p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:DrawingGridVerticalSpacing&gt;7.8 磅&lt;/w:DrawingGridVerticalSpacing&gt;
  &lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;
  &lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:SpaceForUL/&gt;
   &lt;w:BalanceSingleByteDoubleByteWidth/&gt;
   &lt;w:DoNotLeaveBackslashAlone/&gt;
   &lt;w:ULTrailSpace/&gt;
   &lt;w:DoNotExpandShiftReturn/&gt;
   &lt;w:AdjustLineHeightInTable/&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:&quot;&quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&quot;Times New Roman&quot;;
	mso-fareast-font-family:&quot;Times New Roman&quot;;
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;写在前面&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;：在夜深人静失眠之夜，终于拿起勇气写下了这篇文章，赤裸祼的剖析自己，希望通过此篇文章自己更了解自己，提升自我，成为自己人生道路上的转折点.&lt;/span&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;聚冠是一家同甘共苦的，有兄弟姐妹情的，相当有冲刺力，具有强大生命力的一家公司，在来聚冠一年多的时间里，懂得了如何细心去应对项目，如何团队合作，懂得了什么叫做激情，什么叫做担当。。。这些都是以前所缺少的。自身还是发现自己很多不足地方，特别是当自己陷于困境的时候，不懂的如何走出困境，往往会陷进一个死循环里面，出不来，自己也感觉到了这将是我个人发展的至命瓶颈。所以有相当有必要认清一下自己。&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;自我分析&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;工作上认真负责，对于自身负责事情，不顾一切努力去完成&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;很虚心去学习自己不懂的东西，同时也是一个非常谦虚的人，每过一段时间就会总结一下自己近期来的表现。&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;困惑的时候，缺少主动沟通，闷在心里自己去寻找解决方案，工作的时候喜欢一头栽进去，往往忽略了周围事情，缺少对身边关注。不善于表达自己的想法，顾虑太多，危机感相当严重，同时自己有时候也是一个比较敏感的人。&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;印象中的我&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:WordDocument&gt;
&lt;w:View&gt;Normal&lt;/w:View&gt;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
&lt;w:PunctuationKerning /&gt;
&lt;w:DrawingGridVerticalSpacing&gt;7.8 磅&lt;/w:DrawingGridVerticalSpacing&gt;
&lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;
&lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;
&lt;w:ValidateAgainstSchemas /&gt;
&lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
&lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
&lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
&lt;w:Compatibility&gt;
&lt;w:SpaceForUL /&gt;
&lt;w:BalanceSingleByteDoubleByteWidth /&gt;
&lt;w:DoNotLeaveBackslashAlone /&gt;
&lt;w:ULTrailSpace /&gt;
&lt;w:DoNotExpandShiftReturn /&gt;
&lt;w:AdjustLineHeightInTable /&gt;
&lt;w:BreakWrappedTables /&gt;
&lt;w:SnapToGridInCell /&gt;
&lt;w:WrapTextWithPunct /&gt;
&lt;w:UseAsianBreakRules /&gt;
&lt;w:DontGrowAutofit /&gt;
&lt;w:UseFELayout /&gt;
&lt;/w:Compatibility&gt;
&lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:&quot;&quot;;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:&quot;Times New Roman&quot;;
mso-fareast-font-family:&quot;Times New Roman&quot;;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family:宋体;mso-ascii-font-family:&amp;quot;Times New Roman&amp;quot;;
mso-hansi-font-family:&amp;quot;Times New Roman&amp;quot;&quot;&gt;真心希望兄弟姐妹们毫无保留发表一下在工作上，生活中，性格上，处理问题上，自己一些中肯看法或者出现的问题，别怕伤到我哈&lt;img src=&quot;/fckeditor/editor/images/smiley/qq2007/0.gif&quot; alt=&quot;&quot; /&gt;，虚心接受。。。&lt;/span&gt;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Fri, 30 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>php.ini很全的中文翻译</title>
            <link>http://www.9streets.cn/art-php-493.html</link>
            <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;&lt;br /&gt;
; 警告 ;&lt;br /&gt;
;;;;;;;;;;;&lt;br /&gt;
; 此配置文件是对于新安装的PHP的默认设置.&lt;br /&gt;
; 默认情况下,PHP使用此配置文件安装&lt;br /&gt;
; 此配置针对开发目的,并且*不是*针对生产环境&lt;br /&gt;
; 基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended&lt;br /&gt;
; 以及在线文档 http://php.net/manual/en/security.php.&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 关于 php.ini   ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 此文件控制了PHP行为的很多方面.  为了让PHP能够读取它&lt;br /&gt;
; 必须命名为 &amp;lsquo;php.ini&amp;rsquo;.  PHP 在其当前工作目录,由PHPRC环境变量指定目录&lt;br /&gt;
; 以及由编译时指定的目录(按此顺序)查找此文件&lt;br /&gt;
; 在Windows环境下, 编译时目录是Windows目录.&lt;br /&gt;
; 在命令行模式下查找php.ini的目录可以被-c参数覆盖.&lt;br /&gt;
;&lt;br /&gt;
; 此文件的语法非常简单.&lt;br /&gt;
; 空行和由分号开始的行会被忽略(你可能已经猜到了).&lt;br /&gt;
; 段的开头(例如 [Foo]) 同样会被悄悄忽略&lt;br /&gt;
; 即使在将来他们可能会有其他作用.&lt;br /&gt;
;&lt;br /&gt;
; 使用以下语法来设定指令:&lt;br /&gt;
; directive = value&lt;br /&gt;
; 指令 = 值&lt;br /&gt;
; 指令名称是 *大小写敏感* &amp;ndash; foo=bar 和 FOO=bar 是不同的.&lt;br /&gt;
;&lt;br /&gt;
; 值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI),&lt;br /&gt;
; INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式&lt;br /&gt;
; (例如 E_ALL &amp;amp; ~E_NOTICE), 或者带引号的字串 (&amp;ldquo;foo&amp;rdquo;).&lt;br /&gt;
;&lt;br /&gt;
; 在INI文件中的表达式只能使用逻辑运算和圆括号:&lt;br /&gt;
; |        逻辑或&lt;br /&gt;
; &amp;amp;       逻辑与&lt;br /&gt;
; ~       逻辑非&lt;br /&gt;
; !        取反&lt;br /&gt;
;&lt;br /&gt;
; 逻辑标志可以使用1,On,True或者Yes来打开.&lt;br /&gt;
; 也可以使用0, Off, False 或者 No来关闭.&lt;br /&gt;
;&lt;br /&gt;
; 在等号后面不写任何内容代表了一个空字符串&lt;br /&gt;
; 或者使用 None 关键词:&lt;br /&gt;
;&lt;br /&gt;
;  foo =         ; 将foo设置成一个空字串&lt;br /&gt;
;  foo = none    ; 将foo设置成一个空字串&lt;br /&gt;
;  foo = &amp;ldquo;none&amp;rdquo;  ; 将foo设置成字串 &amp;lsquo;none&amp;rsquo;&lt;br /&gt;
;&lt;br /&gt;
; 如果你在值中使用了常量, 并且这个常量属于一个动态加载的扩展模块&lt;br /&gt;
; (不论是PHP扩展还是Zend扩展),&lt;br /&gt;
; 那你只能在加载这些扩展 *之后* 使用这些常量.&lt;br /&gt;
;&lt;br /&gt;
;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 关于这个文件  ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 在php.ini-dist 文件中所有的值都相当于内建的默认值&lt;br /&gt;
; (就是如果没有使用php.ini, 或者如果你删除了这些行,&lt;br /&gt;
; 就和内建的默认值一样).&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 语言选项 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;; 打开在Apache下的PHP脚本语言引擎&lt;br /&gt;
engine = On&lt;/p&gt;
&lt;p&gt;; 打开Zend Engine兼容模式(PHP 4.x)&lt;br /&gt;
zend.ze1_compatibility_mode = Off&lt;/p&gt;
&lt;p&gt;; 允许  标签被认为是PHP脚本.&lt;br /&gt;
; 注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布,&lt;br /&gt;
; 因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签&lt;br /&gt;
short_open_tag = On&lt;/p&gt;
&lt;p&gt;; 使用ASP风格 &amp;lt;% %&amp;gt; 标签.&lt;br /&gt;
asp_tags = Off&lt;/p&gt;
&lt;p&gt;; 浮点数中数值的有效位数(浮点数精度).&lt;br /&gt;
precision    =  12&lt;/p&gt;
&lt;p&gt;; 强制2000年兼容 (可能引起不兼容浏览器的问题)&lt;br /&gt;
y2k_compliance = On&lt;/p&gt;
&lt;p&gt;; 输出缓冲允许在你发送了body内容之后发送header(包括 cookies)&lt;br /&gt;
; 代价是稍稍减缓了PHP输出层&lt;br /&gt;
; 你可以在运行时调用 output buffering 函数来打开此功能&lt;br /&gt;
; 你也可以将此指令设置为On来对所有文件打开输出缓冲&lt;br /&gt;
; 如果你想将这个缓冲区限制到特定大小 &amp;ndash; 你可以使用最大的字节数来代替&amp;rsquo;On&amp;rsquo;,来作为这个指令的参数 (例如 output_buffering=4096).&lt;br /&gt;
output_buffering = Off&lt;/p&gt;
&lt;p&gt;; 你可以将所有你脚本输出的内容重定向到指定函数.&lt;br /&gt;
; 例如, 如果你设置 output_handler 到 &amp;ldquo;mb_output_handler&amp;rdquo;,&lt;br /&gt;
; 字符编码会被转换成为指定的编码..&lt;br /&gt;
; 设置任何的输出处理句柄会自动打开输出缓冲.&lt;br /&gt;
; 注意: 如果想编写可移植脚本就不要依赖此INI配置&lt;br /&gt;
;       取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄.&lt;br /&gt;
;       使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么.&lt;br /&gt;
; 注意: 你不能同时使用 &amp;ldquo;mb_output_handler&amp;rdquo; 和 &amp;ldquo;ob_iconv_handler&amp;rdquo;&lt;br /&gt;
;       并且你不能同时使用 &amp;ldquo;ob_gzhandler&amp;rdquo; 和 &amp;ldquo;zlib.output_compression&amp;rdquo;.&lt;br /&gt;
; 注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空.&lt;br /&gt;
;output_handler =&lt;/p&gt;
&lt;p&gt;; 使用zlib库对输出进行压缩&lt;br /&gt;
; 对此选项的有效值是 &amp;lsquo;off&amp;rsquo;, &amp;lsquo;on&amp;rsquo;, 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB)&lt;br /&gt;
; 注意: 结果的chunk大小可能由于压缩对象的大小而不同.&lt;br /&gt;
;       PHP输出块的大小一般压缩之后每个大小时几百个字节.&lt;br /&gt;
;       如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项.&lt;br /&gt;
; 注意: 你必须使用 zlib.output_handler 来替代标准的&lt;br /&gt;
;       output_handler, 否则输出可能会有问题.&lt;br /&gt;
zlib.output_compression = Off&lt;br /&gt;
;zlib.output_compression_level = -1&lt;/p&gt;
&lt;p&gt;; 这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理.&lt;br /&gt;
; 这个设置和 output_handler 一样,但是处理顺序不同.&lt;br /&gt;
;zlib.output_handler =&lt;/p&gt;
&lt;p&gt;; 立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新.&lt;br /&gt;
; 这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样.&lt;br /&gt;
; 打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开.&lt;br /&gt;
implicit_flush = Off&lt;/p&gt;
&lt;p&gt;; 如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数),&lt;br /&gt;
; 如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告.&lt;br /&gt;
; 如果只有你真想要实现类似的回调函数,才设定此入口.&lt;br /&gt;
unserialize_callback_func=&lt;/p&gt;
&lt;p&gt;; 当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数.&lt;br /&gt;
; 默认值是当浮点数被反序列解码后,数值仍旧相同.&lt;br /&gt;
serialize_precision = 100&lt;/p&gt;
&lt;p&gt;; 是否打开强制通过引用传递参数给函数&lt;br /&gt;
; 此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持.&lt;br /&gt;
; 被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入.&lt;br /&gt;
; 你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告&lt;br /&gt;
; 并且参数会传值而不是传引用).&lt;br /&gt;
allow_call_time_pass_reference = On&lt;/p&gt;
&lt;p&gt;;&lt;br /&gt;
; 安全模式&lt;br /&gt;
;&lt;br /&gt;
safe_mode = Off&lt;/p&gt;
&lt;p&gt;; 默认情况下,安全模式在打开文件时,使用UID来比对检测.&lt;br /&gt;
; 如果你只想使用GID做宽松的比对,&lt;br /&gt;
; 打开 safe_mode_gid.&lt;br /&gt;
safe_mode_gid = Off&lt;/p&gt;
&lt;p&gt;; 当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过.&lt;br /&gt;
; (目录必须在 include_path 中存在或者必须在包含时使用全路径)&lt;br /&gt;
safe_mode_include_dir =&lt;/p&gt;
&lt;p&gt;; 当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行.&lt;br /&gt;
safe_mode_exec_dir =&lt;/p&gt;
&lt;p&gt;; 设定某些的环境变量可能成为潜在的安全隐患.&lt;br /&gt;
; 此指令包含一个逗号分隔的前导列表.&lt;br /&gt;
; 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量.&lt;br /&gt;
; 默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR).&lt;br /&gt;
;&lt;br /&gt;
; 注意:  如果此指令为空, PHP会允许用户修改任何环境变量!&lt;br /&gt;
safe_mode_allowed_env_vars = PHP_&lt;/p&gt;
&lt;p&gt;; 此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量.&lt;br /&gt;
; 这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改.&lt;br /&gt;
safe_mode_protected_env_vars = LD_LIBRARY_PATH&lt;/p&gt;
&lt;p&gt;; 如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录.&lt;br /&gt;
; 此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响.&lt;br /&gt;
;open_basedir =&lt;/p&gt;
&lt;p&gt;; 此指令允许你为了安全原因关闭指定的函数.&lt;br /&gt;
; 它接受以逗号分隔的函数名的列表.&lt;br /&gt;
; 此指令* 不会 *受安全模式开或者关的影响.&lt;br /&gt;
disable_functions =&lt;/p&gt;
&lt;p&gt;; 此指令允许你由于安全原因关闭指定的类.&lt;br /&gt;
; 它接受以逗号分隔的类名的列表.&lt;br /&gt;
; 此指令* 不会 *受安全模式开或者关的影响.&lt;br /&gt;
disable_classes =&lt;/p&gt;
&lt;p&gt;; 语法高亮模式的色彩. 任何在 &lt;span style=&quot;color: ???????&quot;&gt; 中可接受的值都可以使用.&lt;br /&gt;
;highlight.string  = #DD0000&lt;br /&gt;
;highlight.comment = #FF9900&lt;br /&gt;
;highlight.keyword = #007700&lt;br /&gt;
;highlight.bg      = #FFFFFF&lt;br /&gt;
;highlight.default = #0000BB&lt;br /&gt;
;highlight.html    = #000000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;; 如果打开, 即便用户放弃了的请求也会被执行完成.&lt;br /&gt;
; 在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项.&lt;br /&gt;
; ignore_user_abort = On&lt;/p&gt;
&lt;p&gt;; 指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值.&lt;br /&gt;
; realpath_cache_size=16k&lt;/p&gt;
&lt;p&gt;; 对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值.&lt;br /&gt;
; realpath_cache_ttl=120&lt;/p&gt;
&lt;p&gt;;&lt;br /&gt;
; 其他&lt;br /&gt;
;&lt;br /&gt;
; 考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名).&lt;br /&gt;
; 任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP.&lt;br /&gt;
expose_php = On&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 资源限制 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;; 每个脚本最大执行秒数&lt;br /&gt;
max_execution_time = 30&lt;br /&gt;
; 每个脚本用来分析请求数据的最大时间&lt;br /&gt;
max_input_time = 60&lt;br /&gt;
; 最大输入变量的嵌套级别&lt;br /&gt;
;max_input_nesting_level = 64&lt;br /&gt;
; 每个脚本能够使用的最大内存数量 (128MB)&lt;br /&gt;
memory_limit = 128M&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 错误处理和记录 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;; 错误报告时一个位. 对每一个数值取或可以得到最终的报告级别&lt;br /&gt;
; E_ALL             &amp;ndash; 所有错误和警告 (不包含 E_STRICT)&lt;br /&gt;
; E_ERROR           &amp;ndash; 致命的运行时错误&lt;br /&gt;
; E_RECOVERABLE_ERROR  &amp;ndash; 几乎致命的运行时错误&lt;br /&gt;
; E_WARNING         &amp;ndash; 运行时警告 (非致命错误)&lt;br /&gt;
; E_PARSE           &amp;ndash; 编译时语法错误&lt;br /&gt;
; E_NOTICE          &amp;ndash; 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实)&lt;br /&gt;
; E_STRICT          &amp;ndash; 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议&lt;br /&gt;
; E_CORE_ERROR      &amp;ndash; PHP初始化启动时的致命错误&lt;br /&gt;
; E_CORE_WARNING    &amp;ndash; 在PHP初始化时发生的警告 (非致命错误)&lt;br /&gt;
; E_COMPILE_ERROR   &amp;ndash; 致命的编译时错误&lt;br /&gt;
; E_COMPILE_WARNING &amp;ndash; 编译时警告 (非致命)&lt;br /&gt;
; E_USER_ERROR      &amp;ndash; 用户产生的错误信息&lt;br /&gt;
; E_USER_WARNING    &amp;ndash; 用户产生的警告信息&lt;br /&gt;
; E_USER_NOTICE     &amp;ndash; 用户产生的提示信息&lt;br /&gt;
;&lt;br /&gt;
;例子:&lt;br /&gt;
;&lt;br /&gt;
;   &amp;ndash; 显示所有错误, 除了提示以及代码标准警告以外&lt;br /&gt;
;&lt;br /&gt;
;error_reporting = E_ALL &amp;amp; ~E_NOTICE&lt;br /&gt;
;&lt;br /&gt;
;   &amp;ndash; 显示所有错误,除了提示以外&lt;br /&gt;
;&lt;br /&gt;
;error_reporting = E_ALL &amp;amp; ~E_NOTICE | E_STRICT&lt;br /&gt;
;&lt;br /&gt;
;   &amp;ndash; 只显示错误&lt;br /&gt;
;&lt;br /&gt;
;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR&lt;br /&gt;
;&lt;br /&gt;
;   &amp;ndash; 显示出了提示以及代码标准警告之外的错误&lt;br /&gt;
;&lt;br /&gt;
error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&lt;/p&gt;
&lt;p&gt;; 打印输出错误 (作为输出的一部分).  对于生产环境的网站来说,&lt;br /&gt;
; 强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容).&lt;br /&gt;
; 在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息.&lt;br /&gt;
;&lt;br /&gt;
; display_errors可用的值:&lt;br /&gt;
;&lt;br /&gt;
; Off        &amp;ndash; 不显示任何错误信息&lt;br /&gt;
; stderr     &amp;ndash; 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!)&lt;br /&gt;
;&lt;br /&gt;
;display_errors = &amp;ldquo;stderr&amp;rdquo;&lt;br /&gt;
;&lt;br /&gt;
; stdout (On) &amp;ndash; 输出错误信息到STDOUT上&lt;br /&gt;
;&lt;br /&gt;
display_errors = On&lt;/p&gt;
&lt;p&gt;; 即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示.&lt;br /&gt;
; 强烈建议你保持 display_startup_errors 关闭状态, 除非在排错&lt;br /&gt;
display_startup_errors = Off&lt;/p&gt;
&lt;p&gt;; 将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定))&lt;br /&gt;
; 和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示.&lt;br /&gt;
log_errors = Off&lt;/p&gt;
&lt;p&gt;; 设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内.&lt;br /&gt;
; 默认是1024, 设置为0可以不限制任何最大长度.&lt;br /&gt;
log_errors_max_len = 1024&lt;/p&gt;
&lt;p&gt;; 不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true.&lt;br /&gt;
ignore_repeated_errors = Off&lt;/p&gt;
&lt;p&gt;; 当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息.&lt;br /&gt;
ignore_repeated_source = Off&lt;/p&gt;
&lt;p&gt;; 如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中).&lt;br /&gt;
; 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING&lt;br /&gt;
report_memleaks = On&lt;/p&gt;
&lt;p&gt;;report_zend_debug = 0&lt;/p&gt;
&lt;p&gt;; 在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).&lt;br /&gt;
track_errors = Off&lt;/p&gt;
&lt;p&gt;; 关闭在错误信息中所包含的HTML标签.&lt;br /&gt;
; 注意: 永远不要再生产环境中使用此特性.&lt;br /&gt;
;html_errors = Off&lt;/p&gt;
&lt;p&gt;; 如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面.&lt;br /&gt;
; 你可以从 http://www.php.net/docs.php 下载一份PHP手册的副本&lt;br /&gt;
; 并且将 docref_root指向你放置本地拷贝的以&amp;rsquo;/'开头的.&lt;br /&gt;
; 你同时必须指定文件文件的包含点的扩展名.&lt;br /&gt;
; 注意: 永远不要再生产环境中使用此特性.&lt;br /&gt;
;docref_root = &amp;ldquo;/phpmanual/&amp;rdquo;&lt;br /&gt;
;docref_ext = .html&lt;/p&gt;
&lt;p&gt;; 在输出的错误信息前加上的字符串.&lt;br /&gt;
;error_prepend_string = &amp;ldquo;&lt;font color=&quot;#ff0000&quot;&gt;&amp;rdquo;&lt;/font&gt;&lt;/p&gt;
&lt;font color=&quot;#ff0000&quot;&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;; 在输出的错误信息之后加上的字符串.&lt;br /&gt;
;error_append_string = &amp;ldquo;&lt;/font&gt;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 将错误记录到指定文件.&lt;br /&gt;
;error_log = filename&lt;/p&gt;
&lt;p&gt;; 将错误记录到 syslog (NT系统上的Event Log在Windows 95下不可用).&lt;br /&gt;
;error_log = syslog&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 文件处理 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;&lt;br /&gt;
;&lt;br /&gt;
; 注意 &amp;ndash; track_vars 在PHP 4.0.3 中总是打开的&lt;/p&gt;
&lt;p&gt;; 在PHP产生的URL中用来分隔参数的符号.&lt;br /&gt;
; 默认是 &amp;ldquo;&amp;amp;&amp;rdquo;.&lt;br /&gt;
;arg_separator.output = &amp;ldquo;&amp;amp;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; PHP用来将URL分割输入到变量中的分隔符.&lt;br /&gt;
; 默认是 &amp;ldquo;&amp;amp;&amp;rdquo;.&lt;br /&gt;
; 注意: 所有包含在指令内的字符都会被认为是分隔符!&lt;br /&gt;
;arg_separator.input = &amp;ldquo;;&amp;amp;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序  (各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC).  注册使用从左往右的顺序, 新的值会覆盖旧的值.&lt;br /&gt;
variables_order = &amp;ldquo;EGPCS&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 是否将EGPCS变量注册成为全局变量.&lt;br /&gt;
; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项&lt;br /&gt;
; 这个一般随着 track_vars 打开 &amp;ndash; 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量.&lt;br /&gt;
;&lt;br /&gt;
; 你应该努力写好脚本这样就不必打开register_globals&lt;br /&gt;
; 如果代码不是经过详细的斟酌,那将变量作为全局使用可能很容易导致潜在的安全漏洞.&lt;br /&gt;
register_globals = Off&lt;/p&gt;
&lt;p&gt;; 是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组&lt;br /&gt;
; 如果你不使用他们,建议为了提高性能关闭他们.&lt;br /&gt;
register_long_arrays = On&lt;/p&gt;
&lt;p&gt;; 此指令让PHP确认是否申明 argv&amp;amp;argc 变量 (这些变量会包含GET信息).&lt;br /&gt;
; 如果你不使用这些变量,为了提升性能应该关闭此选项.&lt;br /&gt;
register_argc_argv = On&lt;/p&gt;
&lt;p&gt;; 当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)&lt;br /&gt;
; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.&lt;br /&gt;
; 为了使此指令有效,PHP指令 register_globals, register_long_arrays,&lt;br /&gt;
; 以及 register_argc_argv 必须被关闭.&lt;br /&gt;
auto_globals_jit = On&lt;/p&gt;
&lt;p&gt;; PHP可以接受的最大的POST数据大小.&lt;br /&gt;
post_max_size = 8M&lt;/p&gt;
&lt;p&gt;; Magic quotes&lt;br /&gt;
;&lt;/p&gt;
&lt;p&gt;; 针对GET/POST/Cookie数据打开Magic quotes.&lt;br /&gt;
magic_quotes_gpc = On&lt;/p&gt;
&lt;p&gt;; 针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等.&lt;br /&gt;
magic_quotes_runtime = Off&lt;/p&gt;
&lt;p&gt;; 使用 Sybase 风格的 magic quotes (使用&amp;rdquo;来引导&amp;rsquo;替代\&amp;rsquo;).&lt;br /&gt;
magic_quotes_sybase = Off&lt;/p&gt;
&lt;p&gt;; 在任何PHP文档之前或之后自动增加文件.&lt;br /&gt;
auto_prepend_file =&lt;br /&gt;
auto_append_file =&lt;/p&gt;
&lt;p&gt;; 和 4.0b4一样, PHP 总是使用默认在头 Content-type: 的编码输出字符.&lt;br /&gt;
; 将其设置为空可以禁用发送字符集.&lt;br /&gt;
;&lt;br /&gt;
; PHP内建默认为text/html&lt;br /&gt;
default_mimetype = &amp;ldquo;text/html&amp;rdquo;&lt;br /&gt;
;default_charset = &amp;ldquo;iso-8859-1&amp;Prime;&lt;/p&gt;
&lt;p&gt;; 总是填充 $HTTP_RAW_POST_DATA 变量.&lt;br /&gt;
;always_populate_raw_post_data = On&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 路径和目录 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;; UNIX: &amp;ldquo;/path1:/path2&amp;Prime;&lt;br /&gt;
;include_path = &amp;ldquo;.:/php/includes&amp;rdquo;&lt;br /&gt;
;&lt;br /&gt;
; Windows: &amp;ldquo;\path1;\path2&amp;Prime;&lt;br /&gt;
;include_path = &amp;ldquo;.;c:\php\includes&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; PHP页面的根路径, 只有非空时有效.&lt;br /&gt;
; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root&lt;br /&gt;
; 针对安全问题查看文档.  一种替代方案是使用下面的cgi.force_redirect&lt;br /&gt;
doc_root =&lt;/p&gt;
&lt;p&gt;; PHP使用/~username打开脚本的目录,非空时才有效.&lt;br /&gt;
user_dir =&lt;/p&gt;
&lt;p&gt;; 可加载的扩展(模块)的目录位置.&lt;br /&gt;
extension_dir = &amp;ldquo;./&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 是否启用 dl() 函数.  dl() 函数无法正常的在多线程服务下运行, 例如IIS或者Zeus, 并在在这些服务软件下会自动禁用.&lt;br /&gt;
enable_dl = On&lt;/p&gt;
&lt;p&gt;; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的.&lt;br /&gt;
; 没有配置的情况下,PHP会默认打开此项.&lt;br /&gt;
; 你可以在这里关闭此项并且自己承担风险&lt;br /&gt;
; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.**&lt;br /&gt;
; cgi.force_redirect = 1&lt;/p&gt;
&lt;p&gt;; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200.&lt;br /&gt;
; cgi.nph = 1&lt;/p&gt;
&lt;p&gt;; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行,&lt;br /&gt;
; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果.&lt;br /&gt;
; cgi.redirect_status_env = ;&lt;/p&gt;
&lt;p&gt;; cgi.fix_pathinfo 为CGI提供 *真实* PATH_INFO/PATH_TRANSLATED 支持.&lt;br /&gt;
; PHP的预处理行为是设置 PATH_TRANSLATED 到 SCRIPT_FILENAME, 并且不去猜测 PATH_INFO 是什么.&lt;br /&gt;
; 想获取关于 PATH_INFO 更多的信息, 查看 cgi 规范.&lt;br /&gt;
; 将此值设置为1会引起PHP CGI修正它的路径来符合规范.&lt;br /&gt;
; 设置为0会引起PHP类似前面的行为. 默认是1. 你应该修正你的脚本来使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED.&lt;br /&gt;
; cgi.fix_pathinfo=0&lt;/p&gt;
&lt;p&gt;; 在IIS下的FastCGI (在基于 WINNT 的操作系统下) 支持莫让呼叫客户端的安全令牌的能力.&lt;br /&gt;
; 这使得IIS能够定义其下运行的安全上下文.&lt;br /&gt;
; 在Apache下的mod_fastcgi 目前不支持此特性 (03/17/2002)&lt;br /&gt;
; 如果运行在IIS下设置为1. 默认是0.&lt;br /&gt;
; fastcgi.impersonate = 1;&lt;/p&gt;
&lt;p&gt;; 关闭通过 FastCGI 连接的日志&lt;br /&gt;
; fastcgi.logging = 0&lt;/p&gt;
&lt;p&gt;; cgi.rfc2616_headers 配置选项告知 PHP 当发送HTTP响应代码时使用什么类型的头&lt;br /&gt;
; 如果设置为0,PHP发送被Apache支持的 Status: 头信息.&lt;br /&gt;
; 当设置为1, PHP会发送 RFC2616 兼容的头信息.&lt;br /&gt;
; 默认为0.&lt;br /&gt;
; cgi.rfc2616_headers = 0&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 文件上传 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;; 是否允许HTTP文件上传.&lt;br /&gt;
file_uploads = On&lt;/p&gt;
&lt;p&gt;; 对于HTTP上传文件的临时文件目录 (如果没有指定则会使用系统默认).&lt;br /&gt;
;upload_tmp_dir =&lt;/p&gt;
&lt;p&gt;; 允许上传的最大文件大小.&lt;br /&gt;
upload_max_filesize = 2M&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; Fopen 包装 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;; 是否允许将URL作为文件 (例如 http:// 或者 ftp://) .&lt;br /&gt;
allow_url_fopen = On&lt;/p&gt;
&lt;p&gt;; 是否允许 include/require 将URL作为文件 (例如 http:// 或者 ftp://) .&lt;br /&gt;
allow_url_include = Off&lt;/p&gt;
&lt;p&gt;; 定义匿名ftp密码 (你的电子邮件地址)&lt;br /&gt;
;from=&amp;rdquo;john@doe.com&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 定义 User-Agent 字符串&lt;br /&gt;
; user_agent=&amp;rdquo;PHP&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 定义基于流的socket接口的超时时间 (秒)&lt;br /&gt;
default_socket_timeout = 60&lt;/p&gt;
&lt;p&gt;; 如果你的脚本必须处理从 Macintosh 系统来的文件,&lt;br /&gt;
; 或者你运行在一台Mac并且需要从unix或者win32系统上处理文件,&lt;br /&gt;
; 设置此标志会引起PHP自动检测这些文件的EOL字符,这样fgets() 和 file() 就可以不用管文件的来源而直接处理了.&lt;br /&gt;
; auto_detect_line_endings = Off&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 动态扩展 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;&lt;br /&gt;
; 如果你希望扩展自动加载, 使用下列语法:&lt;br /&gt;
;&lt;br /&gt;
;   extension=modulename.extension&lt;br /&gt;
;&lt;br /&gt;
; 例如,在Windows系统上:&lt;br /&gt;
;&lt;br /&gt;
;   extension=msql.dll&lt;br /&gt;
;&lt;br /&gt;
; &amp;hellip; 或者在 UNIX 下:&lt;br /&gt;
;&lt;br /&gt;
;   extension=msql.so&lt;br /&gt;
;&lt;br /&gt;
; 注意: 这里应该只是模块的名字;&lt;br /&gt;
; 这里不需要模块的目录信息.&lt;br /&gt;
; 使用上面的 extension_dir 指令来指定扩展的位置.&lt;/p&gt;
&lt;p&gt;; Windows Extensions&lt;br /&gt;
; 注意:已经内建了ODBC支持,所以不需要针对ODBC的dll.&lt;br /&gt;
; 注意:许多DLL文件位于 extensions/ (PHP 4) 或者 ext/ (PHP 5)目录中,和分割的PECL DLL下载在一起 (PHP 5).&lt;br /&gt;
; 确定设置了正确的 extension_dir 指令.&lt;/p&gt;
&lt;p&gt;;extension=php_bz2.dll&lt;br /&gt;
;extension=php_curl.dll&lt;br /&gt;
;extension=php_dba.dll&lt;br /&gt;
;extension=php_dbase.dll&lt;br /&gt;
;extension=php_exif.dll&lt;br /&gt;
;extension=php_fdf.dll&lt;br /&gt;
;extension=php_gd2.dll&lt;br /&gt;
;extension=php_gettext.dll&lt;br /&gt;
;extension=php_gmp.dll&lt;br /&gt;
;extension=php_ifx.dll&lt;br /&gt;
;extension=php_imap.dll&lt;br /&gt;
;extension=php_interbase.dll&lt;br /&gt;
;extension=php_ldap.dll&lt;br /&gt;
;extension=php_mbstring.dll&lt;br /&gt;
;extension=php_mcrypt.dll&lt;br /&gt;
;extension=php_mhash.dll&lt;br /&gt;
;extension=php_mime_magic.dll&lt;br /&gt;
;extension=php_ming.dll&lt;br /&gt;
;extension=php_msql.dll&lt;br /&gt;
;extension=php_mssql.dll&lt;br /&gt;
;extension=php_mysql.dll&lt;br /&gt;
;extension=php_mysqli.dll&lt;br /&gt;
;extension=php_oci8.dll&lt;br /&gt;
;extension=php_openssl.dll&lt;br /&gt;
;extension=php_pdo.dll&lt;br /&gt;
;extension=php_pdo_firebird.dll&lt;br /&gt;
;extension=php_pdo_mssql.dll&lt;br /&gt;
;extension=php_pdo_mysql.dll&lt;br /&gt;
;extension=php_pdo_oci.dll&lt;br /&gt;
;extension=php_pdo_oci8.dll&lt;br /&gt;
;extension=php_pdo_odbc.dll&lt;br /&gt;
;extension=php_pdo_pgsql.dll&lt;br /&gt;
;extension=php_pdo_sqlite.dll&lt;br /&gt;
;extension=php_pgsql.dll&lt;br /&gt;
;extension=php_pspell.dll&lt;br /&gt;
;extension=php_shmop.dll&lt;br /&gt;
;extension=php_snmp.dll&lt;br /&gt;
;extension=php_soap.dll&lt;br /&gt;
;extension=php_sockets.dll&lt;br /&gt;
;extension=php_sqlite.dll&lt;br /&gt;
;extension=php_sybase_ct.dll&lt;br /&gt;
;extension=php_tidy.dll&lt;br /&gt;
;extension=php_xmlrpc.dll&lt;br /&gt;
;extension=php_xsl.dll&lt;br /&gt;
;extension=php_zip.dll&lt;/p&gt;
&lt;p&gt;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; 模块设置 ;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;&lt;/p&gt;
&lt;p&gt;[Date]&lt;br /&gt;
; 定义date函数使用的默认时区&lt;br /&gt;
;date.timezone =&lt;/p&gt;
&lt;p&gt;;date.default_latitude = 31.7667&lt;br /&gt;
;date.default_longitude = 35.2333&lt;/p&gt;
&lt;p&gt;;date.sunrise_zenith = 90.583333&lt;br /&gt;
;date.sunset_zenith = 90.583333&lt;/p&gt;
&lt;p&gt;[filter]&lt;br /&gt;
;filter.default = unsafe_raw&lt;br /&gt;
;filter.default_flags =&lt;/p&gt;
&lt;p&gt;[iconv]&lt;br /&gt;
;iconv.input_encoding = ISO-8859-1&lt;br /&gt;
;iconv.internal_encoding = ISO-8859-1&lt;br /&gt;
;iconv.output_encoding = ISO-8859-1&lt;/p&gt;
&lt;p&gt;[sqlite]&lt;br /&gt;
;sqlite.assoc_case = 0&lt;/p&gt;
&lt;p&gt;[xmlrpc]&lt;br /&gt;
;xmlrpc_error_number = 0&lt;br /&gt;
;xmlrpc_errors = 0&lt;/p&gt;
&lt;p&gt;[Pcre]&lt;br /&gt;
;PCRE 库反响追踪限制.&lt;br /&gt;
;pcre.backtrack_limit=100000&lt;/p&gt;
&lt;p&gt;;PCRE 库递归限制.&lt;br /&gt;
;请注意如果你设置此项到一个很高的值, 你可能耗尽所有的可用的进程堆并且最终弄宕PHP(由于到达了操作系统强制的堆大小的限制).&lt;br /&gt;
;pcre.recursion_limit=100000&lt;/p&gt;
&lt;p&gt;[Syslog]&lt;br /&gt;
; 是否定义不同的syslog变量 (例如. $LOG_PID,&lt;br /&gt;
; $LOG_CRON, 等等.).  关闭此选项对性能有益.&lt;br /&gt;
; 在运行时, 你可以调用 define_syslog_variables() 函数来定义这些变量.&lt;br /&gt;
define_syslog_variables  = Off&lt;/p&gt;
&lt;p&gt;[mail function]&lt;br /&gt;
; 针对Win32.&lt;br /&gt;
SMTP = localhost&lt;br /&gt;
smtp_port = 25&lt;/p&gt;
&lt;p&gt;; 针对Win32.&lt;br /&gt;
;sendmail_from = me@example.com&lt;/p&gt;
&lt;p&gt;; 针对Unix.  可以支持参数 (默认: &amp;ldquo;sendmail -t -i&amp;rdquo;).&lt;br /&gt;
;sendmail_path =&lt;/p&gt;
&lt;p&gt;; 强制额外的指定的参数被作为扩展参数传送给sendmail执行文件.&lt;br /&gt;
; 这些参数总是替代mail()函数的第五个参数值, 甚至是在安全模式内.&lt;br /&gt;
;mail.force_extra_parameters =&lt;/p&gt;
&lt;p&gt;[SQL]&lt;br /&gt;
sql.safe_mode = Off&lt;/p&gt;
&lt;p&gt;[ODBC]&lt;br /&gt;
;odbc.default_db    =  目前无效&lt;br /&gt;
;odbc.default_user  =  目前无效&lt;br /&gt;
;odbc.default_pw    =  目前无效&lt;/p&gt;
&lt;p&gt;; 允许或阻止持久连接.&lt;br /&gt;
odbc.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 在重用前检查连接是否可用.&lt;br /&gt;
odbc.check_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
odbc.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
odbc.max_links = -1&lt;/p&gt;
&lt;p&gt;; 长字段处理.  返回变量的字节数.  0 意味着略过.&lt;br /&gt;
odbc.defaultlrl = 4096&lt;/p&gt;
&lt;p&gt;; 二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符.&lt;br /&gt;
; 查看 odbc_binmode 和 odbc_longreadlen 的文档来获取针对 uodbc.defaultlrl 和 uodbc.defaultbinmode的解释&lt;br /&gt;
odbc.defaultbinmode = 1&lt;/p&gt;
&lt;p&gt;[MySQL]&lt;br /&gt;
; 允许或阻止持久连接.&lt;br /&gt;
mysql.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
mysql.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
mysql.max_links = -1&lt;/p&gt;
&lt;p&gt;; mysql_connect()默认的端口号.  如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT&lt;br /&gt;
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).&lt;br /&gt;
; Win32 只会查找MYSQL_PORT值.&lt;br /&gt;
mysql.default_port =&lt;/p&gt;
&lt;p&gt;; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.&lt;br /&gt;
mysql.default_socket =&lt;/p&gt;
&lt;p&gt;; mysql_connect() 的默认host值(在安全模式中不会生效).&lt;br /&gt;
mysql.default_host =&lt;/p&gt;
&lt;p&gt;; mysql_connect() 的默认user值(在安全模式中不会生效).&lt;br /&gt;
mysql.default_user =&lt;/p&gt;
&lt;p&gt;; mysql_connect() 的默认password值(在安全模式中不会生效).&lt;br /&gt;
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.&lt;br /&gt;
; *任何* 使用PHP的用户可以执行 &amp;lsquo;echo get_cfg_var(&amp;ldquo;mysql.default_password&amp;rdquo;)&lt;br /&gt;
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.&lt;br /&gt;
mysql.default_password =&lt;/p&gt;
&lt;p&gt;; 连接超时的最大时间 (秒) , -1 意味着没有限制.&lt;br /&gt;
mysql.connect_timeout = 60&lt;/p&gt;
&lt;p&gt;; 追踪模式. 当 trace_mode 被打开 (=On), table/index 扫描的警告和SQL错误会被显示出来.&lt;br /&gt;
mysql.trace_mode = Off&lt;/p&gt;
&lt;p&gt;[MySQLi]&lt;/p&gt;
&lt;p&gt;; 最大连接数.  -1 意味着没有限制.&lt;br /&gt;
mysqli.max_links = -1&lt;/p&gt;
&lt;p&gt;; mysqli_connect()默认的端口号.  如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT&lt;br /&gt;
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).&lt;br /&gt;
; Win32 只会查找MYSQL_PORT值.&lt;br /&gt;
mysqli.default_port = 3306&lt;/p&gt;
&lt;p&gt;; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.&lt;br /&gt;
mysqli.default_socket =&lt;/p&gt;
&lt;p&gt;; mysqli_connect() 的默认host值(在安全模式中不会生效).&lt;br /&gt;
mysqli.default_host =&lt;/p&gt;
&lt;p&gt;; mysqli_connect() 的默认user值(在安全模式中不会生效).&lt;br /&gt;
mysqli.default_user =&lt;/p&gt;
&lt;p&gt;; mysqli_connect() 的默认password值(在安全模式中不会生效).&lt;br /&gt;
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.&lt;br /&gt;
; *任何* 使用PHP的用户可以执行 &amp;lsquo;echo get_cfg_var(&amp;ldquo;mysqli.default_password&amp;rdquo;)&lt;br /&gt;
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.&lt;br /&gt;
mysqli.default_pw =&lt;/p&gt;
&lt;p&gt;; 允许或阻止持久连接.&lt;br /&gt;
mysqli.reconnect = Off&lt;/p&gt;
&lt;p&gt;[mSQL]&lt;br /&gt;
; 允许或阻止持久连接.&lt;br /&gt;
msql.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
msql.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
msql.max_links = -1&lt;/p&gt;
&lt;p&gt;[OCI8]&lt;br /&gt;
; 打开使用外部认证的授权连接 (OCI_SYSOPER, OCI_SYSDBA)&lt;br /&gt;
;oci8.privileged_connect = Off&lt;/p&gt;
&lt;p&gt;; 连接: 每个进程的持久OCI8连接的最大数, -1 意味着没有限制.&lt;br /&gt;
;oci8.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 连接: 一个进程允许保持一个空闲持久连接的最大秒数.&lt;br /&gt;
; -1意味着空闲持久连接会永远被保持.&lt;br /&gt;
;oci8.persistent_timeout = -1&lt;/p&gt;
&lt;p&gt;; 连接: 当oci_pconnect() 检测一个连接是否有效时每次发起ping之间必须通过的秒数.&lt;br /&gt;
; 当设置为0后, 每个oci_pconnect() 会发起一个ping. Using -1 完全关闭ping.&lt;br /&gt;
;oci8.ping_interval = 60&lt;/p&gt;
&lt;p&gt;; 调优: 此选项打开声明缓冲(statement cache), 并且指定缓冲多少声明. 使用0关闭声明缓冲.&lt;br /&gt;
;oci8.statement_cache_size = 20&lt;/p&gt;
&lt;p&gt;; 调优: 打开声明预取(statement prefetch) 并且设置自动在声明执行后被取到行的数量.&lt;br /&gt;
;oci8.default_prefetch = 10&lt;/p&gt;
&lt;p&gt;; 兼容性: 设置为On 意味着 oci_close() 不会关闭 oci_connect() 和 oci_new_connect() 的连接.&lt;br /&gt;
;oci8.old_oci_close_semantics = Off&lt;/p&gt;
&lt;p&gt;[PostgresSQL]&lt;br /&gt;
; 允许或阻止持久连接.&lt;br /&gt;
pgsql.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 总是在 pg_pconnect() 时检测断开的持久连接.&lt;br /&gt;
; 自动重置特性会引起一点开销.&lt;br /&gt;
pgsql.auto_reset_persistent = Off&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
pgsql.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
pgsql.max_links = -1&lt;/p&gt;
&lt;p&gt;; 是否忽略 PostgreSQL 后端通告消息.&lt;br /&gt;
; 通告消息记录会需要一点开销.&lt;br /&gt;
pgsql.ignore_notice = 0&lt;/p&gt;
&lt;p&gt;; 是否记录 PostgreSQL 后端通告消息.&lt;br /&gt;
; 除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息&lt;br /&gt;
pgsql.log_notice = 0&lt;/p&gt;
&lt;p&gt;[Sybase]&lt;br /&gt;
; 允许或阻止持久连接.&lt;br /&gt;
sybase.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
sybase.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
sybase.max_links = -1&lt;/p&gt;
&lt;p&gt;;sybase.interface_file = &amp;ldquo;/usr/sybase/interfaces&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 显示出的消息最小严重程度.&lt;br /&gt;
sybase.min_error_severity = 10&lt;/p&gt;
&lt;p&gt;; 显示出的消息最小严重程度.&lt;br /&gt;
sybase.min_message_severity = 10&lt;/p&gt;
&lt;p&gt;; 兼容老版本PHP 3.0的模式.&lt;br /&gt;
; 如果设为 on, 会引起 PHP 自动绑定结果记录的类型到Sybase的类型,而不是将他们全部按照字符串处理.&lt;br /&gt;
; 此兼容模式可能不会永久存在, 所以最好尝试在你代码中需要的地方作出必要的修改, 然后关闭此选项.&lt;br /&gt;
sybase.compatability_mode = Off&lt;/p&gt;
&lt;p&gt;[Sybase-CT]&lt;br /&gt;
; 允许或阻止持久连接.&lt;br /&gt;
sybct.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
sybct.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
sybct.max_links = -1&lt;/p&gt;
&lt;p&gt;; 显示出的错误最小严重程度.&lt;br /&gt;
sybct.min_server_severity = 10&lt;/p&gt;
&lt;p&gt;; 显示出的消息最小严重程度.&lt;br /&gt;
sybct.min_client_severity = 10&lt;/p&gt;
&lt;p&gt;[bcmath]&lt;br /&gt;
; 所有bcmath函数的小数位数&lt;br /&gt;
bcmath.scale = 0&lt;/p&gt;
&lt;p&gt;[browscap]&lt;br /&gt;
;browscap = extra/browscap.ini&lt;/p&gt;
&lt;p&gt;[Informix]&lt;br /&gt;
; 对于 ifx_connect() 的默认host (不会在安全模式被应用).&lt;br /&gt;
ifx.default_host =&lt;/p&gt;
&lt;p&gt;; 对于 ifx_connect() 的默认user (不会在安全模式被应用).&lt;br /&gt;
ifx.default_user =&lt;/p&gt;
&lt;p&gt;; 对于 ifx_connect() 的默认password (不会在安全模式被应用).&lt;br /&gt;
ifx.default_password =&lt;/p&gt;
&lt;p&gt;; 允许或阻止持久连接.&lt;br /&gt;
ifx.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
ifx.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
ifx.max_links = -1&lt;/p&gt;
&lt;p&gt;; 如果设为 on, select 声明返回 text 段的内容而不是它的id.&lt;br /&gt;
ifx.textasvarchar = 0&lt;/p&gt;
&lt;p&gt;; 如果设为 on, select 声明返回 byte 段的内容而不是它的id.&lt;br /&gt;
ifx.byteasvarchar = 0&lt;/p&gt;
&lt;p&gt;; 固定长度字符列的尾部空格会被截去.  可能对 Informix SE 用户有帮助.&lt;br /&gt;
ifx.charasvarchar = 0&lt;/p&gt;
&lt;p&gt;; 如果设为 on, text 和 byte 段会被dump到一个文件而不是在内存中保留它们.&lt;br /&gt;
ifx.blobinfile = 0&lt;/p&gt;
&lt;p&gt;; NULL会被作为一个空字符串返回, 除非被设为1. 如果设为1, NULL会被作为字符串&amp;rsquo;NULL&amp;rsquo;返回.&lt;br /&gt;
ifx.nullformat = 0&lt;/p&gt;
&lt;p&gt;[Session]&lt;br /&gt;
; 用来存储/获取数据的处理方法.&lt;br /&gt;
session.save_handler = files&lt;/p&gt;
&lt;p&gt;; 传送到save_handler的参数.  在使用文件的情况下, 这里是数据文件被保存的路径.&lt;br /&gt;
; 注意: Windows 用户必须改变此值来使用PHP的会话函数.&lt;br /&gt;
;&lt;br /&gt;
; 和在 4.0.1一样, 你可以定义如下路径:&lt;br /&gt;
;&lt;br /&gt;
;     session.save_path = &amp;ldquo;N;/path&amp;rdquo;&lt;br /&gt;
;&lt;br /&gt;
; 这里的 N 是一个整数.  使用此参数会在目录内建立一个N层深度的子目录用来保存session文件,&lt;br /&gt;
; 而不是将所有session文件保存在同一个/path目录内.&lt;br /&gt;
; 这对你或当你的操作系统在一个目录内保存太多文件时出现问题很有帮助.&lt;br /&gt;
; 并且对于处理大量session的服务器提供更高的效率.&lt;br /&gt;
;&lt;br /&gt;
; 注意 1: PHP不会自动创建目录结构. 你可以使用在ext/session目录内的脚本来创建目录结构.&lt;br /&gt;
; 注意 2: 如果你选择使用子目录来保存session,请检查下面关于垃圾回收的配置段&lt;br /&gt;
;&lt;br /&gt;
; 文件存储模块默认使用600模式来创建文件,在使用中你可以改变此选项&lt;br /&gt;
;&lt;br /&gt;
;     session.save_path = &amp;ldquo;N;MODE;/path&amp;rdquo;&lt;br /&gt;
;&lt;br /&gt;
; 这里的MODE由8进制来表示. 注意这里不会覆盖进程的umask.&lt;br /&gt;
;session.save_path = &amp;ldquo;/tmp&amp;rdquo;&lt;/p&gt;
&lt;p&gt;; 是否使用cookie.&lt;br /&gt;
session.use_cookies = 1&lt;/p&gt;
&lt;p&gt;;session.cookie_secure =&lt;/p&gt;
&lt;p&gt;; 这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击&lt;br /&gt;
; 默认是 0.&lt;br /&gt;
; session.use_only_cookies = 1&lt;/p&gt;
&lt;p&gt;; session的名称 (作为cookie名称来使用).&lt;br /&gt;
session.name = PHPSESSID&lt;/p&gt;
&lt;p&gt;; 在请求开始的时候初始化session.&lt;br /&gt;
session.auto_start = 0&lt;/p&gt;
&lt;p&gt;; cookie的生存秒数,或者如果为0就直到浏览器重启.&lt;br /&gt;
session.cookie_lifetime = 0&lt;/p&gt;
&lt;p&gt;; cookie有效的路径.&lt;br /&gt;
session.cookie_path = /&lt;/p&gt;
&lt;p&gt;; cookie有效的域名.&lt;br /&gt;
session.cookie_domain =&lt;/p&gt;
&lt;p&gt;; 是否将httpOnly标志增加到cookie上, 增加后则cookie无法被浏览器的脚本语言(例如JavaScript)存取.&lt;br /&gt;
session.cookie_httponly =&lt;/p&gt;
&lt;p&gt;; 用于序列化数据的处理器. php是标准的PHP序列化器.&lt;br /&gt;
session.serialize_handler = php&lt;/p&gt;
&lt;p&gt;; 定义&amp;rsquo;垃圾回收&amp;rsquo;进程在每次session初始化时开始的比例.&lt;br /&gt;
; 比例由 gc_probability/gc_divisor来得出,&lt;br /&gt;
; 例如. 1/100 意味着在每次请求时有1%的机会启动&amp;rsquo;垃圾回收&amp;rsquo;进程.&lt;/p&gt;
&lt;p&gt;session.gc_probability = 1&lt;br /&gt;
session.gc_divisor     = 100&lt;/p&gt;
&lt;p&gt;; 在经过以下秒数之后, 存储的数据会被认为是&amp;rsquo;垃圾&amp;rsquo;并且被垃圾回收进程清理掉.&lt;br /&gt;
session.gc_maxlifetime = 1440&lt;/p&gt;
&lt;p&gt;; 注意: 如果你使用子目录选项来保存session文件&lt;br /&gt;
;       (查看在上面的session.save_path), 那么垃圾回收就 *不会* 自动发生.&lt;br /&gt;
;       你需要通过一个shell脚本,cron或者其他方法来自行处理垃圾回收.&lt;br /&gt;
;       例如, 下面的脚本相当于将session.gc_maxlifetime设置为 1440 (1440 秒 = 24 分钟):&lt;br /&gt;
;          cd /path/to/sessions; find -cmin +24 | xargs rm&lt;/p&gt;
&lt;p&gt;; PHP 4.2 和更早版本有一个未公开的 特性/bug , 此特性允许你在全局初始化一个session变量,即便 register_globals 已经被关闭.&lt;br /&gt;
; 如果此特性被使用,PHP 4.3 和更早版本会警告你.&lt;br /&gt;
; 你可以关闭此特性并且隔离此警告. 这时候,如果打开bug_compat_42,那此警告只是被显示出来.&lt;/p&gt;
&lt;p&gt;session.bug_compat_42 = 1&lt;br /&gt;
session.bug_compat_warn = 1&lt;/p&gt;
&lt;p&gt;; 检查HTTP Referer来防止带有id的外部URL.&lt;br /&gt;
; HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的.&lt;br /&gt;
session.referer_check =&lt;/p&gt;
&lt;p&gt;; 从此文件读取多少字节.&lt;br /&gt;
session.entropy_length = 0&lt;/p&gt;
&lt;p&gt;; 在这里指定创建session id.&lt;br /&gt;
session.entropy_file =&lt;/p&gt;
&lt;p&gt;;session.entropy_length = 16&lt;/p&gt;
&lt;p&gt;;session.entropy_file = /dev/urandom&lt;/p&gt;
&lt;p&gt;; 设置为 {nocache,private,public,} 来决定HTTP缓冲的类型&lt;br /&gt;
; 留空则防止发送 anti-caching 头.&lt;br /&gt;
session.cache_limiter = nocache&lt;/p&gt;
&lt;p&gt;; 文档在n分钟之后过期.&lt;br /&gt;
session.cache_expire = 180&lt;/p&gt;
&lt;p&gt;; trans sid 支持默认关闭.&lt;br /&gt;
; 使用 trans sid 可能让你的用户承担安全风险.&lt;br /&gt;
; 使用此项必须小心.&lt;br /&gt;
; &amp;ndash; 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人.&lt;br /&gt;
; &amp;ndash; 包含有效session ID的URL可能被存放在容易被公共存取的电脑上.&lt;br /&gt;
; &amp;ndash; 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点.&lt;br /&gt;
session.use_trans_sid = 0&lt;/p&gt;
&lt;p&gt;; 选择hash方法&lt;br /&gt;
; 0: MD5   (128 bits)&lt;br /&gt;
; 1: SHA-1 (160 bits)&lt;br /&gt;
session.hash_function = 0&lt;/p&gt;
&lt;p&gt;; 当转换二进制hash数据到可读形式时,每个字符保存时有几位.&lt;br /&gt;
;&lt;br /&gt;
; 4 bits: 0-9, a-f&lt;br /&gt;
; 5 bits: 0-9, a-v&lt;br /&gt;
; 6 bits: 0-9, a-z, A-Z, &amp;ldquo;-&amp;rdquo;, &amp;ldquo;,&amp;rdquo;&lt;br /&gt;
session.hash_bits_per_character = 4&lt;/p&gt;
&lt;p&gt;; URL rewriter会在已经定义的一组HTML标签内查找URL.&lt;br /&gt;
; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏&lt;br /&gt;
&lt;input /&gt;字段否则就是在URL中附加信息.&lt;br /&gt;
; 如果你你想遵守XHTML, 删除form的入口.&lt;br /&gt;
; 注意 所有合法的入口都需要一个&amp;rdquo;=&amp;rdquo;符号, 甚至是没有任何值的.&lt;br /&gt;
url_rewriter.tags = &amp;ldquo;a=href,area=href,frame=src,input=src,form=,fieldset=&amp;rdquo;&lt;/p&gt;
&lt;p&gt;[MSSQL]&lt;br /&gt;
; 允许或阻止持久连接.&lt;br /&gt;
mssql.allow_persistent = On&lt;/p&gt;
&lt;p&gt;; 持久连接的最大数目.  -1 意味着没有限制.&lt;br /&gt;
mssql.max_persistent = -1&lt;/p&gt;
&lt;p&gt;; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.&lt;br /&gt;
mssql.max_links = -1&lt;/p&gt;
&lt;p&gt;; 显示出的错误最小严重程度.&lt;br /&gt;
mssql.min_error_severity = 10&lt;/p&gt;
&lt;p&gt;; 显示出的消息最小严重程度.&lt;br /&gt;
mssql.min_message_severity = 10&lt;/p&gt;
&lt;p&gt;; PHP 3.0 老版本的兼容模式.&lt;br /&gt;
mssql.compatability_mode = Off&lt;/p&gt;
&lt;p&gt;; 连接超时&lt;br /&gt;
;mssql.connect_timeout = 5&lt;/p&gt;
&lt;p&gt;; 查询超时&lt;br /&gt;
;mssql.timeout = 60&lt;/p&gt;
&lt;p&gt;; 有效范围 0 &amp;ndash; 2147483647.  默认 = 4096.&lt;br /&gt;
;mssql.textlimit = 4096&lt;/p&gt;
&lt;p&gt;; 有效范围 0 &amp;ndash; 2147483647.  默认 = 4096.&lt;br /&gt;
;mssql.textsize = 4096&lt;/p&gt;
&lt;p&gt;; 每批记录的数量限制.  0 = 所有记录在一批内.&lt;br /&gt;
;mssql.batchsize = 0&lt;/p&gt;
&lt;p&gt;; 指定 datetime 和 datetim4 栏如何返回&lt;br /&gt;
; On =&amp;gt; 返回数据转换到SQL服务器设置的格式&lt;br /&gt;
; Off =&amp;gt; 使用 YYYY-MM-DD hh:mm:ss 返回&lt;br /&gt;
;mssql.datetimeconvert = On&lt;/p&gt;
&lt;p&gt;; 当连接到服务器时使用NT验证&lt;br /&gt;
mssql.secure_connection = Off&lt;/p&gt;
&lt;p&gt;; 指定最大进程数. -1 = 库默认&lt;br /&gt;
; msdlib 默认 25&lt;br /&gt;
; FreeTDS 默认 4096&lt;br /&gt;
;mssql.max_procs = -1&lt;/p&gt;
&lt;p&gt;; 指定客户端字符集.&lt;br /&gt;
; 如果为空或者没有指定,客户端字符集将会使用freetds.conf的配置&lt;br /&gt;
; 只有和FreeTDS编译时会被使用&lt;br /&gt;
;mssql.charset = &amp;ldquo;ISO-8859-1&amp;Prime;&lt;/p&gt;
&lt;p&gt;[Assertion]&lt;br /&gt;
; 断言(expr); 默认打开.&lt;br /&gt;
;assert.active = On&lt;/p&gt;
&lt;p&gt;; 对于每个失败断言发起一个PHP警告.&lt;br /&gt;
;assert.warning = On&lt;/p&gt;
&lt;p&gt;; 默认不要保释.&lt;br /&gt;
;assert.bail = Off&lt;/p&gt;
&lt;p&gt;; 如果断言失败则调用用户自定义函数.&lt;br /&gt;
;assert.callback = 0&lt;/p&gt;
&lt;p&gt;; 使用当前 error_reporting() Eval一个表达式.  如果你想要在eval()附近error_reporting(0) ,那设置为true.&lt;br /&gt;
;assert.quiet_eval = 0&lt;/p&gt;
&lt;p&gt;[COM]&lt;br /&gt;
; 包含GUID,IID或者TypeLibs的文件的文件名的文件的路径&lt;br /&gt;
;com.typelib_file =&lt;br /&gt;
; 允许 Distributed-COM 调用&lt;br /&gt;
;com.allow_dcom = true&lt;br /&gt;
; 自动注册位于com_load()函数的组件typlib的常量&lt;br /&gt;
;com.autoregister_typelib = true&lt;br /&gt;
; 注册常量大小写敏感&lt;br /&gt;
;com.autoregister_casesensitive = false&lt;br /&gt;
; 当有重复常量注册时显示警告&lt;br /&gt;
;com.autoregister_verbose = true&lt;/p&gt;
&lt;p&gt;[mbstring]&lt;br /&gt;
; 内部字符表示的语言.&lt;br /&gt;
;mbstring.language = Japanese&lt;/p&gt;
&lt;p&gt;; 内部/脚本编码.&lt;br /&gt;
; 部分编码无法作为内部编码使用.&lt;br /&gt;
; (例如. SJIS, BIG5, ISO-2022-*)&lt;br /&gt;
;mbstring.internal_encoding = EUC-JP&lt;/p&gt;
&lt;p&gt;; http 输入编码.&lt;br /&gt;
;mbstring.http_input = auto&lt;/p&gt;
&lt;p&gt;; http 输出编码. mb_output_handler 必须作为函数被注册为输出缓冲&lt;br /&gt;
;mbstring.http_output = SJIS&lt;/p&gt;
&lt;p&gt;; 按照mbstring.internal_encoding的设置打开自动编码转换&lt;br /&gt;
; 当设置为On时,输入字符被转换为内部编码.&lt;br /&gt;
; 注意: 不要针对可移植库/应用使用自动编码转换.&lt;br /&gt;
;mbstring.encoding_translation = Off&lt;/p&gt;
&lt;p&gt;; 自动编码检测序列&lt;br /&gt;
; 自动意味着&lt;br /&gt;
;mbstring.detect_order = auto&lt;/p&gt;
&lt;p&gt;; 当无法将字符从一种转换到另一种时使用的置换符号&lt;br /&gt;
;mbstring.substitute_character = none;&lt;/p&gt;
&lt;p&gt;; 使用mbstring函数 覆盖(替换) 单字节函数.&lt;br /&gt;
; mail(), ereg(), 等等都会被 mb_send_mail(), mb_ereg() 等等覆盖,&lt;br /&gt;
; 可以取的值是 0,1,2,4 或者他们的组合.&lt;br /&gt;
; 例如, 7 就是覆盖所有函数.&lt;br /&gt;
; 0: 不覆盖&lt;br /&gt;
; 1: 覆盖 mail() 函数&lt;br /&gt;
; 2: 覆盖 str*() 函数&lt;br /&gt;
; 4: 覆盖 ereg*() 函数&lt;br /&gt;
;mbstring.func_overload = 0&lt;/p&gt;
&lt;p&gt;[FrontBase]&lt;br /&gt;
;fbsql.allow_persistent = On&lt;br /&gt;
;fbsql.autocommit = On&lt;br /&gt;
;fbsql.show_timestamp_decimals = Off&lt;br /&gt;
;fbsql.default_database =&lt;br /&gt;
;fbsql.default_database_password =&lt;br /&gt;
;fbsql.default_host =&lt;br /&gt;
;fbsql.default_password =&lt;br /&gt;
;fbsql.default_user = &amp;ldquo;_SYSTEM&amp;rdquo;&lt;br /&gt;
;fbsql.generate_warnings = Off&lt;br /&gt;
;fbsql.max_connections = 128&lt;br /&gt;
;fbsql.max_links = 128&lt;br /&gt;
;fbsql.max_persistent = -1&lt;br /&gt;
;fbsql.max_results = 128&lt;/p&gt;
&lt;p&gt;[gd]&lt;br /&gt;
; 告知jpeg解码器libjpeg警告并且尝试创建一个gd图像. 此警告会被作为一个通告显示&lt;br /&gt;
; 默认为关闭&lt;br /&gt;
;gd.jpeg_ignore_warning = 0&lt;/p&gt;
&lt;p&gt;[exif]&lt;br /&gt;
; Exif UNICODE 用户注释会被作为UCS-2BE/UCS-2LE 和 JIS 来进行 JIS处理.&lt;br /&gt;
; 当 mbstring.internal_encoding 设置为空,如果有 mbstring 支持,则会自动转换到给出的对应编码设置的编码.&lt;br /&gt;
; 对于解码设置你可以在motorola和intel字符序列上进行选择. 解码设置不能设置为空.&lt;br /&gt;
;exif.encode_unicode = ISO-8859-15&lt;br /&gt;
;exif.decode_unicode_motorola = UCS-2BE&lt;br /&gt;
;exif.decode_unicode_intel    = UCS-2LE&lt;br /&gt;
;exif.encode_jis =&lt;br /&gt;
;exif.decode_jis_motorola = JIS&lt;br /&gt;
;exif.decode_jis_intel    = JIS&lt;/p&gt;
&lt;p&gt;[Tidy]&lt;br /&gt;
; 当调用tidy时,默认指向tidy配置文件的路径&lt;br /&gt;
;tidy.default_config = /usr/local/lib/php/default.tcfg&lt;/p&gt;
&lt;p&gt;; tidy是否自动清除和修复输出?&lt;br /&gt;
; 警告: 不要在你产生非html内容时使用此项,例如产生动态图片时&lt;br /&gt;
tidy.clean_output = Off&lt;/p&gt;
&lt;p&gt;[soap]&lt;br /&gt;
; 打开或关闭WSDL缓冲特性.&lt;br /&gt;
soap.wsdl_cache_enabled=1&lt;br /&gt;
; 设置SOAP扩展存放缓冲文件的目录.&lt;br /&gt;
soap.wsdl_cache_dir=&amp;rdquo;/tmp&amp;rdquo;&lt;br /&gt;
; (存活时间) 设置当缓冲文件被用来替换原有缓冲文件的秒数.&lt;br /&gt;
soap.wsdl_cache_ttl=86400&lt;/p&gt;
&lt;p&gt;; Local Variables:&lt;br /&gt;
; tab-width: 4&lt;br /&gt;
; End:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -----------------转摘自http://hiadmin.com/?p=1284 &amp;nbsp; &lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Thu, 22 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>本地mysql 忘记root密码解决秘决</title>
            <link>http://www.9streets.cn/art-php-492.html</link>
            <description>&lt;p&gt;不知咋地，本地数据库的mysql密码忘记了，网上了搜了一大堆，终于找到解决起来相当简单的方法,我是直接用了其中第二种方法解决的，在此记一下，方便以后使用&lt;/p&gt;
&lt;p&gt;1.使用mysqladmin修改mysql密码&lt;br /&gt;
&amp;nbsp;C:\&amp;gt;mysqladmin -udbuser -p password newpass&lt;br /&gt;
&amp;nbsp;Enter password: oldpass&lt;br /&gt;
&amp;nbsp;当然用此命令的前提是你把mysql加入了环境变量，如果没有加入环境变量的话那只能在命令行下cd到&lt;/p&gt;
&lt;p&gt;mysqladmin所在的目录下与此那个次命令了！&lt;br /&gt;
&amp;nbsp;-----------------------------------------&lt;br /&gt;
&amp;nbsp;2.重置root密码&lt;br /&gt;
&amp;nbsp;方法一:&lt;br /&gt;
&amp;nbsp;在my.ini的[mysqld]字段加入： &lt;br /&gt;
skip-grant-tables &lt;br /&gt;
重启mysql服务，这时的mysql不需要密码即可登录数据库&lt;br /&gt;
&amp;nbsp;然后进入mysql &lt;br /&gt;
mysql&amp;gt;use mysql;&lt;br /&gt;
&amp;nbsp;mysql&amp;gt;更新 user set password=password('新密码') WHERE User='root'; &lt;br /&gt;
mysql&amp;gt;flush privileges;&lt;br /&gt;
&amp;nbsp;运行之后最后去掉my.ini中的skip-grant-tables，重启mysqld即可。&lt;br /&gt;
&amp;nbsp;修改mysql密码方法二:&lt;br /&gt;
&amp;nbsp;不使用修改my.ini重启服务的方法，通过非服务方式加skip-grant-tables运行mysql来修改mysql密码&lt;br /&gt;
&amp;nbsp;停止mysql服务&lt;br /&gt;
&amp;nbsp;打开命令行窗口，在bin目录下使用mysqld-nt.exe启动，即在命令行窗口执行: mysqld-nt --skip-grant-&lt;/p&gt;
&lt;p&gt;tables&lt;br /&gt;
&amp;nbsp;然后另外打开一个命令行窗口，登录mysql，此时无需输入mysql密码即可进入。&lt;br /&gt;
&amp;nbsp;按以上方法修改好密码后,关闭命令行运行mysql的那个窗口，此时即关闭了mysql，如果发现mysql仍在运行&lt;/p&gt;
&lt;p&gt;的话可以结束掉对应进程来关闭。&lt;br /&gt;
&amp;nbsp;启动mysql服务&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Wed, 21 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>用缓存文件快速缓解数据库压力方案</title>
            <link>http://www.9streets.cn/art-php-491.html</link>
            <description>&lt;p&gt;在跟TX一个项目由于广告效果做的不错，用户暴增，几天时间某一张表达到5KW多条数据，后期还会暴增，不得把这张表重新优化，提高体验效果。由于数据大，迁移起来比较繁锁，同时考虑了项目周期性比较短等原因，临时采用把表生成缓存文件来读取，把这张表数据分成100张文据来代替读取数据库文件，然后后台定时抓取这张表数据生成缓存：&lt;/p&gt;
&lt;p&gt;优点：读取速度快，实现简单，适用于广告型项目&lt;/p&gt;
&lt;p&gt;缺点:&amp;nbsp; 数据实时性不强，不适合周期长的项目&lt;br /&gt;
下面是实现代码部分：&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;div class=&quot;codeHead&quot;&gt;&lt;span class=&quot;lantxt&quot;&gt;PHP Code&lt;/span&gt;&lt;span onclick=&quot;copyIdText('code_2212')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;code_2212&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-c&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;define(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'ROOT_PATH'&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;func&quot;&gt;realpath&lt;/span&gt;&lt;span&gt;(dirname(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;__FILE__&lt;/span&gt;&lt;span&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'/../'&lt;/span&gt;&lt;span&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'/'&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;define(&lt;span class=&quot;string&quot;&gt;'CACHE_PATH'&lt;/span&gt;&lt;span&gt;,&amp;nbsp;ROOT_PATH.&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'cache/'&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;vars&quot;&gt;$db&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;TMService();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;//步长为1，循环&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;foreach&lt;/span&gt;&lt;span&gt;&amp;nbsp;(range(0,&amp;nbsp;99,&amp;nbsp;1)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;as&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$number&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$fileName&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;fileMessage&amp;quot;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$number&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;.xml&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$allFile&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$db&lt;/span&gt;&lt;span&gt;-&amp;gt;query(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;select&amp;nbsp;`FQQ`,`FUser`,`FState`,`FDealTime`,`FScore`,`FTime`,`FVoteCount`,`FDesc`,`FAudioUrl`,`FMemo`,`FType`,`FFileId`&amp;nbsp;from&amp;nbsp;Tbl_File&amp;nbsp;where&amp;nbsp;MOD(FFileId,100)&amp;nbsp;=&amp;nbsp;$number&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$newArr&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;array&lt;/span&gt;&lt;span&gt;();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;foreach&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$allFile&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;as&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$key&lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$item&lt;/span&gt;&lt;span&gt;){&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$arr&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;array&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$item&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$newArr&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$item&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'FFileId'&lt;/span&gt;&lt;span&gt;]]&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$arr&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$data&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;serialize(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$newArr&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;vars&quot;&gt;$fo&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;@&lt;/span&gt;&lt;span class=&quot;func&quot;&gt;fopen&lt;/span&gt;&lt;span&gt;(CACHE_PATH.&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;filecache/&amp;quot;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$fileName&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'w'&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@fwrite(&lt;span class=&quot;vars&quot;&gt;$fo&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$data&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@fclose(&lt;span class=&quot;vars&quot;&gt;$fo&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;童鞋们有好的方案可以一起讨论一下。。&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Tue, 20 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>jquery获取某个盒子中单选多选值</title>
            <link>http://www.9streets.cn/art-php-490.html</link>
            <description>&lt;p&gt;以前写过一篇JS获取&lt;a href=&quot;http://www.9streets.cn/art-php-420.html&quot;&gt;&lt;u&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;JS获取某个区域中被选中的复选框或单选框元素&lt;/span&gt;&lt;/u&gt;&lt;/a&gt; ，通过传个参数值，今天再用jquery写了一篇只用一个参数便可搞定jquery代码，代码写的比较简洁，贴一下主要代码，同时可以直接下载&lt;a href=&quot;/userfiles/jstest.rar&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;jquery获取某个盒子中单选多选值压缩包&lt;/span&gt;&lt;/a&gt;看看demo.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;&lt;span onclick=&quot;copyIdText('code_8680')&quot; style=&quot;cursor:pointer&quot; class=&quot;copyCodeText&quot;&gt;复制内容到剪贴板&lt;/span&gt;
&lt;div id=&quot;code_8680&quot;&gt;
&lt;ol start=&quot;1&quot; class=&quot;dp-xml&quot;&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;$(document).ready(function(){&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&amp;quot;div&amp;nbsp;input&amp;quot;).click(function(){&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;resulta&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;getBoxval&lt;/span&gt;&lt;span&gt;('boxc');&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.each(resulta,function(i,val){&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(val);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//console.log(getBoxval());&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;getBoxval(str){&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;resultcc&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;Array();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#'+str+'&amp;nbsp;input:checked').each(function(i){&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resultcc[i]&amp;nbsp;=&amp;nbsp;&amp;nbsp;this.value;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;resultcc&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span&gt;})&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 12 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>一步步构建大型网站架构</title>
            <link>http://www.9streets.cn/art-php-489.html</link>
            <description>&lt;p&gt;有幸接确到了架构这个词的玩意，这几天有时间就网上游离一下相关资料，看到不错就收藏一下，作为以后学习的方向：&lt;/p&gt;
&lt;p&gt;之前我简单向大家介绍了各个知名大型网站的架构，&lt;a target=&quot;_blank&quot; href=&quot;http://www.itivy.com/ivy/archive/2011/3/7/634351257301504864.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;MySpace的五个里程碑&lt;/span&gt;&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.itivy.com/ivy/archive/2011/3/7/634351294385186067.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;Flickr的架构&lt;/span&gt;&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.itivy.com/ivy/archive/2011/3/6/634350416046298451.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;YouTube的架构&lt;/span&gt;&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.itivy.com/ivy/archive/2011/3/5/634349627089221280.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;PlentyOfFish的架构&lt;/span&gt;&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.itivy.com/ivy/archive/2011/3/7/634351127072679482.html&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;WikiPedia的架构&lt;/span&gt;&lt;/a&gt;。这几个都很典型，我们可以从中获取很多有关网站架构方面的知识，看了之后你会发现你原来的想法很可能是狭隘的。&lt;/p&gt;
&lt;p&gt;　　今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的，虽然我们希望网站一开始就能有一个很好的架构，但马克思告诉我们事物是在发展中不 断前进的，网站架构也是随着业务的扩大、用户的需求不断完善的，下面是一个网站架构逐步发展的基本过程，读完后，请思考，你现在在哪个阶段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第一步：物理分离WebServer和数据库&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　最开始，由于某些想法，于是在互联网上搭建了一个网站，这个时候甚至有可能主机都是租借的，但由于这篇文章我们只关注架构的演变历程，因此就假 设这个时候已经是托管了一台主机，并且有一定的带宽了。这个时候由于网站具备了一定的特色，吸引了部分人访问，逐渐你发现系统的压力越来越高，响应速度越 来越慢，而这个时候比较明显的是数据库和应用互相影响，应用出问题了，数据库也很容易出现问题，而数据库出问题的时候，应用也容易出问题。于是进入了第一 步演变阶段：将应用和数据库从物理上分离，变成了两台机器，这个时候技术上没有什么新的要求，但你发现确实起到效果了，系统又恢复到以前的响应速度了，并 且支撑住了更高的流量，并且不会因为数据库和应用形成互相的影响。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220040718.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第二步：增加页面缓存&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　好景不长，随着访问的人越来越多，你发现响应速度又开始变慢了，查找原因，发现是访问数据库的操作太多，导致数据连接竞争激烈，所以响应变慢。 但数据库连接又不能开太多，否则数据库机器压力会很高，因此考虑采用缓存机制来减少数据库连接资源的竞争和对数据库读的压力。这个时候首先也许会选择采用 squid等类似的机制来将系统中相对静态的页面（例如一两天才会有更新的页面）进行缓存（当然，也可以采用将页面静态化的方案），这样程序上可以不做修 改，就能够很好的减少对WebServer的压力以及减少数据库连接资源的竞争，OK，于是开始采用squid来做相对静态的页面的缓存。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220053264.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　前端页面缓存技术，例如squid，如想用好的话还得深入掌握下squid的实现方式以及缓存的失效算法等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第三步：增加页面片段缓存&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　增加了squid做缓存后，整体系统的速度确实是提升了，WebServer的压力也开始下降了，但随着访问量的增加，发现系统又开始变的有些 慢了。在尝到了squid之类的动态缓存带来的好处后，开始想能不能让现在那些动态页面里相对静态的部分也缓存起来呢，因此考虑采用类似ESI之类的页面 片段缓存策略，OK，于是开始采用ESI来做动态页面中相对静态的片段部分的缓存。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220072139.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　页面片段缓存技术，例如ESI等，想用好的话同样需要掌握ESI的实现方式等；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第四步：数据缓存&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　在采用ESI之类的技术再次提高了系统的缓存效果后，系统的压力确实进一步降低了，但同样，随着访问量的增加，系统还是开始变慢。经过查找，可 能会发现系统中存在一些重复获取数据信息的地方，像获取用户信息等，这个时候开始考虑是不是可以将这些数据信息也缓存起来呢，于是将这些数据缓存到本地内 存，改变完毕后，完全符合预期，系统的响应速度又恢复了，数据库的压力也再度降低了不少。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220082618.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　缓存技术，包括像Map数据结构、缓存算法、所选用的框架本身的实现机制等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第五步： 增加WebServer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　好景不长，发现随着系统访问量的再度增加，webserver机器的压力在高峰期会上升到比较高，这个时候开始考虑增加一台 webserver，这也是为了同时解决可用性的问题，避免单台的webserver  down机的话就没法使用了，在做了这些考虑后，决定增加一台webserver，增加一台webserver时，会碰到一些问题，典型的有：&lt;br /&gt;
1、如何让访问分配到这两台机器上，这个时候通常会考虑的方案是Apache自带的负载均衡方案，或LVS这类的软件负载均衡方案；&lt;br /&gt;
2、如何保持状态信息的同步，例如用户session等，这个时候会考虑的方案有写入数据库、写入存储、cookie或同步session信息等机制等；&lt;br /&gt;
3、如何保持数据缓存信息的同步，例如之前缓存的用户数据等，这个时候通常会考虑的机制有缓存同步或分布式缓存；&lt;br /&gt;
4、如何让上传文件这些类似的功能继续正常，这个时候通常会考虑的机制是使用共享文件系统或存储等；&lt;br /&gt;
在解决了这些问题后，终于是把webserver增加为了两台，系统终于是又恢复到了以往的速度。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220101353.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　负载均衡技术（包括但不限于硬件负载均衡、软件负载均衡、负载算法、linux转发协议、所选用的技术的实现细节等）、主备技术（包括但不限于 ARP欺骗、linuxheart-beat等）、状态信息或缓存同步技术（包括但不限于Cookie技术、UDP协议、状态信息广播、所选用的缓存同步 技术的实现细节等）、共享文件技术（包括但不限于NFS等）、存储技术（包括但不限于存储设备等）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第六步：分库&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　享受了一段时间的系统访问量高速增长的幸福后，发现系统又开始变慢了，这次又是什么状况呢，经过查找，发现数据库写入、更新的这些操作的部分数 据库连接的资源竞争非常激烈，导致了系统变慢，这下怎么办呢？此时可选的方案有数据库集群和分库策略，集群方面像有些数据库支持的并不是很好，因此分库会 成为比较普遍的策略，分库也就意味着要对原有程序进行修改，一通修改实现分库后，不错，目标达到了，系统恢复甚至速度比以前还快了。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220113592.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　这一步更多的是需要从业务上做合理的划分，以实现分库，具体技术细节上没有其他的要求；&lt;/p&gt;
&lt;p&gt;　　但同时随着数据量的增大和分库的进行，在数据库的设计、调优以及维护上需要做的更好，因此对这些方面的技术还是提出了很高的要求的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第七步：分表、DAL和分布式缓存&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　随着系统的不断运行，数据量开始大幅度增长，这个时候发现分库后查询仍然会有些慢，于是按照分库的思想开始 做分表的工作。当然，这不可避免的会需要对程序进行一些修改，也许在这个时候就会发现应用自己要关心分库分表的规则等，还是有些复杂的。于是萌生能否增加 一个通用的框架来实现分库分表的数据访问，这个在ebay的架构中对应的就是DAL，这个演变的过程相对而言需要花费较长的时间。当然，也有可能这个通用 的框架会等到分表做完后才开始做。同时，在这个阶段可能会发现之前的缓存同步方案出现问题，因为数据量太大，导致现在不太可能将缓存存在本地，然后同步的 方式，需要采用分布式缓存方案了。于是，又是一通考察和折磨，终于是将大量的数据缓存转移到分布式缓存上了。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220133124.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　分表更多的同样是业务上的划分，技术上涉及到的会有动态hash算法、consistenthash算法等；&lt;/p&gt;
&lt;p&gt;　　DAL涉及到比较多的复杂技术，例如数据库连接的管理（超时、异常）、数据库操作的控制（超时、异常）、分库分表规则的封装等；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第八步：增加更多的WebServer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　在做完分库分表这些工作后，数据库上的压力已经降到比较低了，又开始过着每天看着访问量暴增的幸福生活了。突然有一天，发现系统的访问又开始有 变慢的趋势  了，这个时候首先查看数据库，压力一切正常，之后查看webserver，发现apache阻塞了很多的请求，而应用服务器对每个请求也是比较快的，看来 是请求数太高导致需要排队等待，响应速度变慢。这还好办，一般来说，这个时候也会有些钱了，于是添加一些webserver服务器，在这个添加 webserver服务器的过程，有可能会出现几种挑战：&lt;/p&gt;
&lt;p&gt;　　1、Apache的软负载或LVS软负载等无法承担巨大的web访问量（请求连接数、网络流量等）的调度了，这个时候如果经费允许的话，会采取 的方案是购买硬件负载平衡设备，例如F5、Netsclar、Athelon之类的，如经费不允许的话，会采取的方案是将应用从逻辑上做一定的分类，然后 分散到不同的软负载集群中；&lt;/p&gt;
&lt;p&gt;　　2、原有的一些状态信息同步、文件共享等方案可能会出现瓶颈，需要进行改进，也许这个时候会根据情况编写符合网站业务需求的分布式文件系统等；&lt;/p&gt;
&lt;p&gt;　　在做完这些工作后，开始进入一个看似完美的无限伸缩的时代，当网站流量增加时，应对的解决方案就是不断的添加webserver。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220163084.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　到了这一步，随着机器数的不断增长、数据量的不断增长和对系统可用性的要求越来越高，这个时候要求对所采用的技术都要有更为深入的理解，并需要根据网站的需求来做更加定制性质的产品。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第九步：数据读写分离和廉价存储方案&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　突然有一天，发现这个完美的时代也要结束了，数据库的噩梦又一次出现在眼前了。由于添加的webserver太多了，导致数据库连接的资源还是 不够用，而这个时候又已经分库分表了，开始分析数据库的压力状况，可能会发现数据库的读写比很高，这个时候通常会想到数据读写分离的方案。当然，这个方案 要实现并不容易，另外，可能会发现一些数据存储在数据库上有些浪费，或者说过于占用数据库资源，因此在这个阶段可能会形成的架构演变是实现数据读写分离， 同时编写一些更为廉价的存储方案，例如BigTable这种。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220205795.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　数据读写分离要求对数据库的复制、standby等策略有深入的掌握和理解，同时会要求具备自行实现的技术；&lt;/p&gt;
&lt;p&gt;　　廉价存储方案要求对OS的文件存储有深入的掌握和理解，同时要求对采用的语言在文件这块的实现有深入的掌握。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;　　架构演变第十步：进入大型分布式应用时代和廉价服务器群梦想时代&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　　经过上面这个漫长而痛苦的过程，终于是再度迎来了完美的时代，不断的增加webserver就可以支撑越来越高的访问量了。对于大型网站而言， 人气的重要毋庸置疑，随着人气的越来越高，各种各样的功能需求也开始爆发性的增长。这个时候突然发现，原来部署在webserver上的那个web应用已 经非常庞大  了，当多个团队都开始对其进行改动时，可真是相当的不方便，复用性也相当糟糕，基本是每个团队都做了或多或少重复的事情，而且部署和维护也是相当的麻烦。 因为庞大的应用包在N台机器上复制、启动都需要耗费不少的时间，出问题的时候也不是很好查，另外一个更糟糕的状况是很有可能会出现某个应用上的bug就导   致了全站都不可用，还有其他的像调优不好操作（因为机器上部署的应用什么都要做，根本就无法进行针对性的调优）等因素，根据这样的分析，开始痛下决心，将 系统根据职责进行拆分，于是一个大型的分布式应用就诞生了，通常，这个步骤需要耗费相当长的时间，因为会碰到很多的挑战：&lt;/p&gt;
&lt;p&gt;　　1、拆成分布式后需要提供一个高性能、稳定的通信框架，并且需要支持多种不同的通信和远程调用方式；&lt;br /&gt;
2、将一个庞大的应用拆分需要耗费很长的时间，需要进行业务的整理和系统依赖关系的控制等；&lt;br /&gt;
3、如何运维（依赖管理、运行状况管理、错误追踪、调优、监控和报警等）好这个庞大的分布式应用。&lt;br /&gt;
经过这一步，差不多系统的架构进入相对稳定的阶段，同时也能开始采用大量的廉价机器来支撑着巨大的访问量和数据量，结合这套架构以及这么多次演变过程吸取的经验来采用其他各种各样的方法来支撑着越来越高的访问量。&lt;/p&gt;
&lt;p&gt;　　看看这一步完成后系统的图示：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220181825.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　这一步涉及到了这些知识体系：&lt;/p&gt;
&lt;p&gt;　　这一步涉及的知识体系非常的多，要求对通信、远程调用、消息机制等有深入的理解和掌握，要求的都是从理论、硬件级、操作系统级以及所采用的语言的实现都有清楚的理解。&lt;/p&gt;
&lt;p&gt;　　最后，附上一张大型网站的架构图：&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://pic001.cnblogs.com/images/2011/1/2011050220223859.gif&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 本文摘自博客园---http://kb.cnblogs.com/page/99549/&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 12 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>IE下Internet Explorer 无法打开Internet站点 http://xxxxx 已终止操作解决方案</title>
            <link>http://www.9streets.cn/art-php-487.html</link>
            <description>&lt;p&gt;在调试某个项目代码的时候，出现了JS报错，第二次打开页面的时候，出现下图报错,Firefox里面打开网页一切正常&lt;br /&gt;
&lt;img height=&quot;108&quot; width=&quot;425&quot; src=&quot;/userfiles/open+internet+error.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
网上搜了了一下解析办法，里面有提到引起的相关原因：&lt;/p&gt;
&lt;p&gt;1。由于加载页面的时候，IE先加载了缓存，如果缓存里面内容有错误，导致浏览器一直以出错模式运行，清空浏览器缓存文件，在Internet Explorer的工具菜单里选择Internet选项-删除文件，勾选&amp;ldquo;删除所有脱机内容&amp;rdquo;，确定即可，最后重新启动IE。&lt;/p&gt;
&lt;p&gt;2。如果上述方法不行的话，再从Internet选项里选择&amp;ldquo;程序&amp;rdquo;，点击进入&amp;ldquo;管理加载项&amp;rdquo;，把发行者为&amp;ldquo;未验证&amp;rdquo;，类型为&amp;ldquo;浏览器帮助程序对象&amp;rdquo;，文件扩展名为&amp;ldquo;.dll&amp;rdquo;的加载项禁用掉。之后再重新启动IE浏览器。&lt;/p&gt;
&lt;p&gt;3。如果是开发人员查看一下：查看是否有JS调用错误，调用JavaScript时加上defer属性，使页面加载完毕之后再执行该脚本,以避免找不到对象的问题。示例如下所示： &lt;br /&gt;
&amp;lt;Script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;xxxx.js&amp;quot; defer=&amp;quot;defer&amp;quot;&amp;gt;&amp;lt;/Script&amp;gt; 但是在加入了defer属性的JS代码里不能包含document.write。&lt;/p&gt;
&lt;p&gt;不同的问题，要用不同的办法去解决，第一种解决方案9街验证通过&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Tue, 06 Dec 2011 16:00:00 +800</pubDate>
        </item>
        <item>
            <title>ie下调试工具debugger+CompanionJS+Fiddler媲美firebug</title>
            <link>http://www.9streets.cn/art-php-486.html</link>
            <description>&lt;p&gt;以前有写过有关于在IE下调试JS报错的工具&lt;a href=&quot;http://www.9streets.cn/art-php-479.html&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;IE浏览器中用Firebug调试网站的方法&lt;/span&gt;&lt;/a&gt;，但调试出来的结果不是很理想。在IE浏览器往往会报例如下面的报错：&lt;br /&gt;
&lt;img height=&quot;207&quot; width=&quot;380&quot; alt=&quot;&quot; src=&quot;/userfiles/ie+error(1eee).jpg&quot; /&gt;&lt;br /&gt;
查看报错的时候，往往定位不到准确的位置。用了Companion.JS之后，便很清晰定位到哪里报错，详细的javascript错误报告。&lt;br /&gt;
&lt;img alt=&quot;&quot; src=&quot;/userfiles/ie+debugger.jpg&quot; /&gt;&lt;br /&gt;
要安装这个用软件，需要先安装 ie &lt;span style=&quot;color: #ff0000&quot;&gt;&lt;u&gt;Debugger&lt;/u&gt;&amp;nbsp;&lt;/span&gt;+ &lt;a href=&quot;http://www.my-debugbar.com/wiki/CompanionJS/HomePage&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;CompanionJS&lt;/span&gt;&lt;/a&gt;&amp;nbsp;,然后在IE高级选项把两个勾去掉，重启浏览器&lt;br /&gt;
&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;img height=&quot;259&quot; width=&quot;434&quot; alt=&quot;&quot; src=&quot;/userfiles/ie+review.jpg&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000&quot;&gt;JS调试功能就完成了，假如还想看当前HTTP一些信息，再装一个fiddler便perfect了。。&lt;br /&gt;
&lt;img height=&quot;457&quot; width=&quot;901&quot; alt=&quot;&quot; src=&quot;/userfiles/ie+fiddler.jpg&quot; /&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
遇到在IE调试JS困难的朋友可以试试看&lt;/p&gt;</description>
            <author>linhaiquan1@126.com(9streets)</author>
            <pubDate>Mon, 05 Dec 2011 16:00:00 +800</pubDate>
        </item>
    </channel>
</rss>

