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

<channel>
	<title>马丁博客 &#187; php</title>
	<atom:link href="http://www.blags.org/tags/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blags.org</link>
	<description>专注lamp的技术博客</description>
	<lastBuildDate>Sat, 05 Nov 2011 02:25:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://www.blags.org/wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.blags.org/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=tag&id=4_1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>wordpress 评论改进</title>
		<link>http://www.blags.org/wordpress-comments-to-improve/</link>
		<comments>http://www.blags.org/wordpress-comments-to-improve/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 15:54:40 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=685</guid>
		<description><![CDATA[wordpress 有强大的反垃圾评论插件akismet，也有各种各样的优秀评论插件。但是插件太多往往影响速度。而wordpress的评论只是提交了并不会自动返回，需要用户自己点击后退进行返回，严重影响用户体验。]]></description>
			<content:encoded><![CDATA[<p>wordpress 有强大的反垃圾评论插件akismet，也有各种各样的优秀评论插件。但是插件太多往往影响速度。而wordpress的评论只是提交了并不会自动返回，需要用户自己点击后退进行返回，严重影响用户体验。</p>
<p>本文就简单给大家介绍本人的评论优化方案。</p>
<ul>
<li>方案一</li>
</ul>
<p>餐用ajax提交，固然是体验最好的一种，采用ajax就必须在每个页面添加一段js固然会占用页面加载时间。</p>
<ul>
<li>方案二</li>
</ul>
<p>在<a href="http://www.blags.org/wp-comments-post.php">/wp-comments-post.php</a> 进行修改，方法比较简单。</p>
<ol>
<li>找到根目录下/wp-includes/functions.php</li>
<li>找到wp_die()方法。</li>
<li>将

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p685code1'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6851"><td class="code" id="p685code1"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$wp_locale</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'rtl'</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$wp_locale</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>text_direction <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$text_direction</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'rtl'</span><span style="color: #339933;">;</span>
<span style="color: #339933;">........</span>
	<a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #666666; font-style: italic;">#之间</span></pre></td></tr></table></div>

<p>的内容替换成如下：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p685code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6852"><td class="code" id="p685code2"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;!</span>DOCTYPE html <span style="color: #000000; font-weight: bold;">PUBLIC</span> <span style="color: #0000ff;">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span> <span style="color: #0000ff;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>html xmlns<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://www.w3.org/1999/xhtml&quot;</span> <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'language_attributes'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> language_attributes<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>head<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>meta http<span style="color: #339933;">-</span>equiv<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Content-Type&quot;</span> content<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #339933;">/&gt;</span>
        <span style="color: #339933;">&lt;</span>title<span style="color: #339933;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?</span>php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$title</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;/</span>title<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;stylesheet&quot;</span> href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&lt;?php echo <span style="color: #006699; font-weight: bold;">$admin_dir</span>; ?&gt;css/install.css&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/css&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'rtl'</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$text_direction</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
        <span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;stylesheet&quot;</span> href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&lt;?php echo <span style="color: #006699; font-weight: bold;">$admin_dir</span>; ?&gt;css/install-rtl.css&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/css&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">var</span> n<span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span><span style="color: #0000ff;">'三'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span><span style="color: #0000ff;">'二'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span><span style="color: #0000ff;">'一'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>function $<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">return</span> document<span style="color: #339933;">.</span>getElementById<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>setInterval<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">var</span> t<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> Number<span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'t'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>$<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'d'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>innerHTML<span style="color: #339933;">=</span>n<span style="color: #009900;">&#91;</span>t<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>t<span style="color: #339933;">=</span>t<span style="color: #339933;">==</span><span style="color: #cc66cc;">3</span>?<span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span>t<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>$<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'t'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>value<span style="color: #339933;">=</span>t<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>setTimeout<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>history<span style="color: #339933;">.</span>back<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span>
<span style="color: #339933;">&lt;/</span>head<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>body id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;error-page&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #339933;">&lt;</span>input id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;t&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;hidden&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;</span>table width<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;700&quot;</span> border<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;0&quot;</span> cellspacing<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;0&quot;</span><span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>tr<span style="color: #339933;">&gt;&lt;</span>td rowspan<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;3&quot;</span> width<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;125&quot;</span><span style="color: #339933;">&gt;&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">&gt;&lt;</span>img border<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;0&quot;</span> src<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/logo.jpg&quot;</span> title<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;马丁博客&quot;</span><span style="color: #339933;">&gt;&lt;/</span>a<span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;&lt;</span>td style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;font-size:13px;&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?</span>php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$message</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;&lt;/</span>tr<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>tr<span style="color: #339933;">&gt;&lt;</span>td style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;font-size:11px;&quot;</span><span style="color: #339933;">&gt;</span>页面在 <span style="color: #339933;">&lt;</span>span id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;d&quot;</span> style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color:red&quot;</span><span style="color: #339933;">&gt;</span>四<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;</span> 秒后自动返回<span style="color: #339933;">,</span>如果你的浏览器没响应请 <span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;javascript:history.back();&quot;</span><span style="color: #339933;">&gt;</span>点击此处<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span> 返回继续<span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;&lt;/</span>tr<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>tr<span style="color: #339933;">&gt;&lt;</span>td style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;font-size:11px;&quot;</span><span style="color: #339933;">&gt;</span>Page automatically after a few seconds to <span style="color: #b1b100;">return</span><span style="color: #339933;">,</span> <span style="color: #b1b100;">if</span> your browser did not respond to <span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;javascript:history.back();&quot;</span><span style="color: #339933;">&gt;</span>Click here<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span> to <span style="color: #b1b100;">return</span> to continue<span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;&lt;/</span>tr<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;/</span>table<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

</li>
</ol>
<p>下面是效果图：</p>
<div id="attachment_687" class="wp-caption alignnone" style="width: 310px"><a href="http://www.blags.org/wp-content/Upload/wordpress-comment.png"><img src="http://www.blags.org/wp-content/Upload/wordpress-comment-300x66.png" alt="wordpress-comment" title="wordpress-comment" width="300" height="66" class="size-medium wp-image-687" /></a><p class="wp-caption-text">wordpress-comment</p></div>
<div style="display:none">ad6bc206</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/wordpress-comments-to-improve/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>php 安全问题</title>
		<link>http://www.blags.org/php-security-issue/</link>
		<comments>http://www.blags.org/php-security-issue/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 04:01:07 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[后台]]></category>
		<category><![CDATA[安全]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=674</guid>
		<description><![CDATA[做web开发，相信搭建都知道一些安全基本知识，&#8221;千万不能相信客户端数据&#8220;。而php又是一种弱类型语言。很多人在开发过程中忽略了类型转换，参数过滤直接量成不可估量的后果。
不使用过滤函数可能出现以下情况：

数据库被(sql)注入。直接可以导致你的系统崩溃，系统数据丢失，用户信息丢失。
网站被挂马，遇到文件处理则可以将你的网站文件删除。

另外值得一提的是很多人认为开启php安全模式就万事大吉了。其实不然，很多注入者往往绕过正面，进行侧面进攻。

使用 0&#215;7e,0&#215;27等(ASCII码)字符串来充当引号，而php又无法过滤。
注入的一般方式都是在参数里面加入很多mysql sql语法，去获取敏感数据信息。

exp：

View Code SQLand&#40;select 1 from&#40;select count&#40;*&#41;,concat&#40;&#40;select &#40;select &#40;select concat&#40;0x7e,0x27,phpcms_member.username,0x27,0x7e&#41; from phpcms_member limit 0,1&#41;&#41; from information_schema.tables limit 0,1&#41;,floor&#40;rand&#40;0&#41;*2&#41;&#41;x from information_schema.tables group by x&#41;a&#41; and 1=1

mysql information_schema.tables 所有用户都可见可查，能查出所有表结构信息，数据库信息。
php开源系统很多，很多开源系统大家知道数据结构，已级敏感信息表。(这里当然也包括不法分子)
这里指的敏感信息：往往是一些用户信息，管理端信息。现在md5的穷举一直在进行着。很多的md5加密之后的密码仍然能被解密成明文。
很多系统都做了相应的安全提升。
下面介绍以下常见手段：

使用过滤函数，php filter 安全过滤函数.
md5(  md5(&#8216;用户密码&#8217;) . &#8216;私钥&#8217; ) 得出加密结果。
常用的php开源系统后台一定要修改目录名。很多系统后台直接使用admin作为后台入口。
不要将phpmyadmin等数据库操作软件安置在网站可见目录。

等等。。之所以这样是由于现在大量存在扫描工具去扫描这样的管理端。
下面是惊心的一张图
]]></description>
			<content:encoded><![CDATA[<p>做web开发，相信搭建都知道一些安全基本知识，&#8221;<span style="color: #ff0000;">千万不能相信客户端数据</span>&#8220;。而php又是一种弱类型语言。很多人在开发过程中忽略了类型转换，参数过滤直接量成不可估量的后果。</p>
<p>不使用过滤函数可能出现以下情况：</p>
<ul>
<li>数据库被(sql)注入。直接可以导致你的系统崩溃，系统数据丢失，用户信息丢失。</li>
<li>网站被挂马，遇到文件处理则可以将你的网站文件删除。</li>
</ul>
<p>另外值得一提的是很多人认为开启php安全模式就万事大吉了。其实不然，很多注入者往往绕过正面，进行侧面进攻。</p>
<ul>
<li>使用 <span style="color: #ff0000;">0&#215;7e,0&#215;27</span>等(<span style="color: #ff0000;">ASCII码</span>)字符串来充当引号，而php又无法过滤。</li>
<li>注入的一般方式都是在参数里面加入很多<a href="http://www.blags.org/tags/mysql/"title="mysql" >mysql</a> sql语法，去获取敏感数据信息。</li>
</ul>
<p>exp：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p674code4'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6744"><td class="code" id="p674code4"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">and</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">select</span> <span style="color: #cc66cc;">1</span> <span style="color: #993333; font-weight: bold;">from</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">select</span> count<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>concat<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">select</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">select</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">select</span> concat<span style="color: #66cc66;">&#40;</span>0x7e<span style="color: #66cc66;">,</span>0x27<span style="color: #66cc66;">,</span>phpcms_member<span style="color: #66cc66;">.</span>username<span style="color: #66cc66;">,</span>0x27<span style="color: #66cc66;">,</span>0x7e<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">from</span> phpcms_member <span style="color: #993333; font-weight: bold;">limit</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">from</span> information_schema<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">tables</span> <span style="color: #993333; font-weight: bold;">limit</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>floor<span style="color: #66cc66;">&#40;</span>rand<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>x <span style="color: #993333; font-weight: bold;">from</span> information_schema<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">tables</span> <span style="color: #993333; font-weight: bold;">group</span> <span style="color: #993333; font-weight: bold;">by</span> x<span style="color: #66cc66;">&#41;</span>a<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">and</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span></pre></td></tr></table></div>

<p>mysql information_schema.tables 所有用户都可见可查，能查出所有表结构信息，数据库信息。</p>
<p>php开源系统很多，很多开源系统大家知道数据结构，已级敏感信息表。(<span style="color: #ff0000;">这里当然也包括不法分子</span>)</p>
<p>这里指的敏感信息：往往是一些用户信息，管理端信息。现在<span style="color: #ff0000;">md5的穷举</span>一直在进行着。很多的md5加密之后的密码仍然能被解密成明文。</p>
<p>很多系统都做了相应的安全提升。</p>
<p>下面介绍以下常见手段：</p>
<ul>
<li>使用过滤函数，<a title="php filter 安全过滤函数" href="http://www.blags.org/php-security-filter-function/">php filter 安全过滤函数</a>.</li>
<li>md5(  md5(&#8216;用户密码&#8217;) . &#8216;私钥&#8217; ) 得出加密结果。</li>
<li>常用的php开源系统后台一定要修改目录名。很多系统后台直接使用<span style="color: #ff0000;">admin</span>作为后台入口。</li>
<li>不要将phpmyadmin等数据库操作软件安置在网站可见目录。</li>
</ul>
<p>等等。。之所以这样是由于现在大量存在扫描工具去扫描这样的管理端。</p>
<p>下面是惊心的一张图</p>
<div id="attachment_675" class="wp-caption alignnone" style="width: 310px"><a href="http://www.blags.org/wp-content/Upload/mysql-zhu-ru.png"><img src="http://www.blags.org/wp-content/Upload/mysql-zhu-ru-300x223.png" alt="mysql 注入" title="mysql 注入" width="300" height="223" class="size-medium wp-image-675" /></a><p class="wp-caption-text">mysql 注入</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-security-issue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php filter 安全过滤函数</title>
		<link>http://www.blags.org/php-security-filter-function/</link>
		<comments>http://www.blags.org/php-security-filter-function/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 03:59:30 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[filter]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=676</guid>
		<description><![CDATA[php 利用filter 扩展编写的参数处理静态类,欢迎使用。
希望大家看得开心，用得放心。]]></description>
			<content:encoded><![CDATA[<p>php 利用filter 扩展编写的参数处理静态类,欢迎使用。<br />
希望大家看得开心，用得放心。</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p676code5'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6765"><td class="code" id="p676code5"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #009933; font-style: italic;">/**
 * @参数验证函数
 * @method:
 * @license http://www.blags.org/
 * @created:2011年07月02日 11时00分
 * @copyright 1997-2011 The Martin Group
 * @author Martin &lt;martin@blags.org&gt; 
 * */</span>
abstract <span style="color: #000000; font-weight: bold;">class</span> CFilter
<span style="color: #009900;">&#123;</span>
	<span style="color: #009933; font-style: italic;">/**
	 * 类型
	 * @var array
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000088;">$varType</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
				<span style="color: #0000ff;">'GET'</span>	<span style="color: #339933;">=&gt;</span> INPUT_GET<span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'POST'</span>	<span style="color: #339933;">=&gt;</span> INPUT_POST<span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'COOKIE'</span><span style="color: #339933;">=&gt;</span> INPUT_COOKIE<span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'SERVER'</span><span style="color: #339933;">=&gt;</span> INPUT_SERVER<span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'ENV'</span>	<span style="color: #339933;">=&gt;</span> INPUT_ENV
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000088;">$filterType</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
			<span style="color: #0000ff;">'STRING'</span>	<span style="color: #339933;">=&gt;</span>	FILTER_SANITIZE_STRING<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'INT'</span>		<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_INT<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'BOOLEAN'</span>	<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_BOOLEAN<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'FLOAT'</span>		<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_FLOAT<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'REGEXP'</span>	<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_REGEXP<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'URL'</span>		<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_URL<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'EMAIL'</span>		<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_EMAIL<span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'IP'</span>		<span style="color: #339933;">=&gt;</span>	FILTER_VALIDATE_IP<span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 支持过滤列表
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> static <span style="color: #000000; font-weight: bold;">function</span> lists<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/filter_list"><span style="color: #990000;">filter_list</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 验证类型
	 * @param string $type
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> filterType<span style="color: #009900;">&#40;</span><span style="color: #000088;">$type</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$filter_list</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">lists</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/array_search"><span style="color: #990000;">array_search</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$type</span><span style="color: #339933;">,</span><span style="color: #000088;">$filter_list</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span> ? <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 
	 * @param $setVarType
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> static <span style="color: #000000; font-weight: bold;">function</span> getVarType<span style="color: #009900;">&#40;</span><span style="color: #000088;">$setVarType</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$setVarType</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtoupper"><span style="color: #990000;">strtoupper</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$setVarType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$varType</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$setVarType</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$varType</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$setVarType</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 
	 * @param string $setFilterType
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> static <span style="color: #000000; font-weight: bold;">function</span> getFilterType<span style="color: #009900;">&#40;</span><span style="color: #000088;">$setFilterType</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$setFilterType</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtoupper"><span style="color: #990000;">strtoupper</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$setFilterType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$setFilterType</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$setFilterType</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 检测参数是否存在
	 * @param string $setVarType
	 * @param string $varName
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> VarExists<span style="color: #009900;">&#40;</span><span style="color: #000088;">$setVarType</span><span style="color: #339933;">,</span><span style="color: #000088;">$varName</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$FilterVarType</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">getVarType</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$setVarType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/is_null"><span style="color: #990000;">is_null</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$FilterVarType</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/filter_has_var"><span style="color: #990000;">filter_has_var</span></a><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$varType</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$FilterVarType</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$varName</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 
	 * @param string $setVarType
	 * @param string $varName
	 * @param string $filterType
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> FilterInput<span style="color: #009900;">&#40;</span><span style="color: #000088;">$setVarType</span><span style="color: #339933;">,</span> <span style="color: #000088;">$varName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filterType</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'INT'</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$FilterVarType</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">getVarType</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$setVarType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$filterType</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">getFilterType</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/is_null"><span style="color: #990000;">is_null</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$FilterVarType</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <a href="http://www.php.net/is_null"><span style="color: #990000;">is_null</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/filter_input"><span style="color: #990000;">filter_input</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$FilterVarType</span><span style="color: #339933;">,</span> <span style="color: #000088;">$varName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 验证变量
	 * @param string $var
	 * @param string $filterType
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> FilterVar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$filterType</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">getFilterType</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/filter_var"><span style="color: #990000;">filter_var</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 字符串
	 * @param string $var
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> String<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'STRING'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Int<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'INT'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Boolean<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'INT'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Float<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'FLOAT'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * 
	 * @param string $var
	 * @param array $option array(&quot;options&quot;=&gt;array(&quot;regexp&quot;=&gt;&quot;/^M(.*)/&quot;))
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Regexp<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #000088;">$option</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$filterType</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">getFilterType</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filterType</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/filter_var"><span style="color: #990000;">filter_var</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filterType</span><span style="color: #339933;">,</span> <span style="color: #000088;">$option</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'URL'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Email<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'EMAIL'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> Ip<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">FilterVar</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'IP'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>参考地址：<a href="http://www.php.net/manual/en/book.filter.php">http://www.php.net/manual/en/book.filter.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-security-filter-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress 热门文章插件</title>
		<link>http://www.blags.org/wordpress-pop-article-plugin/</link>
		<comments>http://www.blags.org/wordpress-pop-article-plugin/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 16:48:47 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[热门文章]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=663</guid>
		<description><![CDATA[一个blog没有文章导航，会使得访客的跳出率大大升高。所以决定写一个文章汇总插件。已经折腾出来了。由于时间仓促。写得比较烂。后续会慢慢改善使之。使用了memcache,当然也可以使用wp_cache_get,wp_cache_set函数来使用您主机所使用的缓存，不过要做下修改。
具体使用方法是。

将文件下载本地解压，上传至您主题目录。
添加页面的时候选择模板使用pop-article就行了。

wordpress 热门文章插件
后期慢慢改善。
效果：见本站 热门文章 热评文章。
效果图：

]]></description>
			<content:encoded><![CDATA[<p>一个blog没有文章导航，会使得访客的跳出率大大升高。所以决定写一个文章汇总插件。已经折腾出来了。由于时间仓促。写得比较烂。后续会慢慢改善使之。使用了memcache,当然也可以使用wp_cache_get,wp_cache_set函数来使用您主机所使用的缓存，不过要做下修改。</p>
<p>具体使用方法是。</p>
<ol>
<li>将文件下载本地解压，上传至您主题目录。</li>
<li>添加页面的时候选择模板使用pop-article就行了。</li>
</ol>
<p><a title="wordpress 热门文章插件" href="http://www.blags.org/wp-content/Upload/pop.zip">wordpress 热门文章插件</a></p>
<p>后期慢慢改善。</p>
<p>效果：见本站 <a href="http://www.blags.org/popular-articles/">热门文章</a> <a href="http://www.blags.org/popular-articles/comment/">热评文章</a>。</p>
<p>效果图：</p>
<p><a href="http://www.blags.org/wp-content/Upload/a61.gif"><img src="http://www.blags.org/wp-content/Upload/a61.gif" alt="" title="a6" width="300" height="178" class="alignnone size-full wp-image-689" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/wordpress-pop-article-plugin/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>magento 性能优化</title>
		<link>http://www.blags.org/magento-performance-optimization/</link>
		<comments>http://www.blags.org/magento-performance-optimization/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 09:54:34 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Unix&Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 开源项目]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=635</guid>
		<description><![CDATA[前言:
&#160;&#160;&#160;&#160;&#160;Magento 是一个开源电子商务系统，尤其以扩展性高著称，但是很高的扩展性往往是牺牲了速度为代价的，虽然现在magento为速度提升做了很多工作，但是还是没能达到人们对速度的要求。既然如此还是很自然的选择了它，它的速度让很多客户无法接受，最近忙碌于magento性能优化。
&#160;&#160;&#160;&#160;&#160;经过优化后，速度上了几个台阶，觉得能让大部分人都接受了，据本人目测最少快了(7-8倍)。
参考结合了前辈的经验总结了如下很重要的几点:
1) Magento Caching. Magento 自身cache
Goto Magento Admin -&#62; System -&#62; Cache Management
- Tick the following items:
&#8211; Configuration
&#8211; Layouts
&#8211; Block HTML output
&#8211; Translations
2) MySQL Cache Size 设置
query_cache_size=128M
innodb_buffer_pool_size=64M
innodb_additional_mem_pool=16M
4) Enabling Gzipping 启用gzip压缩
.htaccess
php_flag zlib.output_compression on
AddHandler application/x-httpd-php5 .css
修改 .htaccess mod_deflate 配置
本人配置如下:

View Code PHP    # Insert filter on all content
    SetOutputFilter DEFLATE
    # <a href="http://www.blags.org/magento-performance-optimization/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>前言:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.blags.org/tags/magento/"title="magento" >Magento</a> 是一个开源电子商务系统，尤其以扩展性高著称，但是很高的扩展性往往是牺牲了速度为代价的，虽然现在magento为速度提升做了很多工作，但是还是没能达到人们对速度的要求。既然如此还是很自然的选择了它，它的速度让很多客户无法接受，最近忙碌于magento性能优化。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;经过优化后，速度上了几个台阶，觉得能让大部分人都接受了，据本人目测最少快了(7-8倍)。</p>
<p>参考结合了前辈的经验总结了如下很重要的几点:<br />
1) Magento Caching. Magento 自身cache<br />
Goto Magento Admin -&gt; System -&gt; Cache Management<br />
- Tick the following items:<br />
&#8211; Configuration<br />
&#8211; Layouts<br />
&#8211; Block HTML output<br />
&#8211; Translations</p>
<p>2) <a href="http://www.blags.org/tags/mysql/"title="mysql" >MySQL</a> Cache Size 设置<br />
query_cache_size=128M<br />
innodb_buffer_pool_size=64M<br />
innodb_additional_mem_pool=16M</p>
<p>4) Enabling Gzipping 启用gzip压缩<br />
.ht<a href="http://www.blags.org/tags/access/"title="access数据库" >access</a><br />
php_flag zlib.output_compression on<br />
AddHandler application/x-httpd-php5 .css</p>
<p>修改 .htaccess mod_deflate 配置<br />
本人配置如下:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p635code7'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6357"><td class="code" id="p635code7"><pre class="php" style="font-family:monospace;">    <span style="color: #666666; font-style: italic;"># Insert filter on all content
</span>    SetOutputFilter DEFLATE
    <span style="color: #666666; font-style: italic;"># Insert filter on selected content types only
</span>    <span style="color: #666666; font-style: italic;">#AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
</span>
    <span style="color: #666666; font-style: italic;"># Netscape 4.x has some problems...
</span>    BrowserMatch ^Mozilla<span style="color: #339933;">/</span><span style="color: #cc66cc;">4</span> gzip<span style="color: #339933;">-</span>only<span style="color: #339933;">-</span>text<span style="color: #339933;">/</span>html
&nbsp;
    <span style="color: #666666; font-style: italic;"># Netscape 4.06-4.08 have some more problems
</span>    BrowserMatch ^Mozilla<span style="color: #339933;">/</span><span style="color: #cc66cc;">4</span>\<span style="color:#800080;">.0</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">678</span><span style="color: #009900;">&#93;</span> no<span style="color: #339933;">-</span>gzip
&nbsp;
    <span style="color: #666666; font-style: italic;"># MSIE masquerades as Netscape, but it is fine
</span>    BrowserMatch \bMSIE <span style="color: #339933;">!</span>no<span style="color: #339933;">-</span>gzip <span style="color: #339933;">!</span>gzip<span style="color: #339933;">-</span>only<span style="color: #339933;">-</span>text<span style="color: #339933;">/</span>html
&nbsp;
    <span style="color: #666666; font-style: italic;"># Don't compress images
</span>    SetEnvIfNoCase Request_URI \<span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span>?<span style="color: #339933;">:</span>gif<span style="color: #339933;">|</span>jpe?g<span style="color: #339933;">|</span>png<span style="color: #009900;">&#41;</span>$ no<span style="color: #339933;">-</span>gzip dont<span style="color: #339933;">-</span>vary
&nbsp;
    <span style="color: #666666; font-style: italic;"># Make sure proxies don't deliver the wrong content
</span>    <a href="http://www.php.net/header"><span style="color: #990000;">Header</span></a> append Vary User<span style="color: #339933;">-</span>Agent env<span style="color: #339933;">=!</span>dont<span style="color: #339933;">-</span>vary</pre></td></tr></table></div>

<p>5) Install Fooman Speedster 安装该插件</p>
<p>6) Install APC or Xcache 安装apc机器码缓存</p>
<p>&lt;cache&gt;<br />
&lt;backend&gt;apc&lt;/backend&gt;<br />
&lt;prefix&gt;alphanumeric&lt;/prefix&gt;<br />
&lt;/cache&gt;<br />
添加到 app/etc/local.xml &lt;global&gt;&lt;/global&gt; 之间.</p>
<p>7) 设置apache 开启 KeepAlive</p>
<p>KeepAlive ＝ On (KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接，如果 KeepAlive 设置为On，那么用户完成一次访问后，不会立即断开连接，如果还有请求，那么会继续在这一次 TCP 连接中完成，而不用重复建立新的 TCP 连接和关闭TCP 连接，可以提高用户访问速度。);</p>
<p>LoadModule deflate_module     modules/mod_deflate.so #开启mod_deflate</p>
<p>参考地址:<a href="http://www.magentocommerce.com/wiki/groups/168/optimising_your_web_stack_performance_for_magento" target="_blank"></a></p>
<p><a href="http://www.magentocommerce.com/wiki/groups/168/optimising_your_web_stack_performance_for_magento" target="_blank">http://www.magentocommerce.com/wiki/groups/168/optimising_your_web_stack_performance_for_magento</a></p>
<p><a href="http://www.magentocommerce.com/boards/viewthread/36225/">http://www.magentocommerce.com/boards/viewthread/36225/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/magento-performance-optimization/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>php 程序员</title>
		<link>http://www.blags.org/php-programmer/</link>
		<comments>http://www.blags.org/php-programmer/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 07:22:13 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[工作]]></category>
		<category><![CDATA[面试]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=634</guid>
		<description><![CDATA[最近去了tencent，xunlei等互联网名企面试，总结一下:

如果想进入这类企业进行底层开发的话必须对互联网各方面的技术原理了解的很清楚，例如apache实现原理。语言方面既然是php开发自然对c/c++要求比较高。往往需要自己写php扩展。使用mysql自然想很多常见的，性能瓶颈要能有很好的解决方案。mysql 插件编写，apache模块编写。联系起来结合点还是要会c。
倘若是做中间层和前端工作则要求对css，javascript要求比较高。当然对web的一系列实现原理也是要非常熟悉的。
对新技术要比较敏感，才能证明你有很好的学习能力和使用能力。
努力提高自己的英文口语，和阅读能力。往往很多新技术都是老外想出来的。等有了中文版也许这个技术已经不是那么新了。

相信我们很多人都只是了解到中间的皮毛而已，对于技术原理。这类型的东西了解甚少。值得注意的一点，正则这个东西在他们严重也是很重要的。
想成为一位合格的php程序员（高级）,必须符合如下条件。
◆ 文件目录处理函数包80％以上的函数的功能的灵活运用。
◆ 日期时间函数中的80％以上的函数的功能的灵活运用
◆ 数学函数库中的100％的内容。
◆ 网络库中的60％以上的内容，对各个函数的功能比较熟悉。
◆ 字符串处理函数下的60％以上的内容，特别是各种处理函数。
◆ 正则表达式函数下的90%以上的内容，特别是各种正则处理
◆  一些安全库下的40％以上的内容，如果对于安全没有接触的话根本就不可能掌握PHP
◆ XML处理，熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
◆ 图形图像函数库下的80%以上的内容，特别是一些图像生成和处理
◆ MySQL 数据库函数下的90%以上的内容，特别是处理各种数据的函数
◆ 数组处理函数下的90%以上的内容，特别是各种操作处理函数
◆  其它PEAR，PECL，和一些扩展类库中的80%以上的内容，特别是一些常用的类的处理
◆  针对不同的需求，查找不同的函数库。
◆  测试：必须熟悉使用phpunit编写测试用例完成代码的自动测试。
◆  管理：必须熟悉使用xinc, phing等完成工程管理的常用任务，例如工程编译、生成phpdoc、生成、版本控制、自动测试。
◆  排错：应该可以根据异常信息比较快速的定位问题的原因和大致位置。
◆  思想：必须掌握OOP的主要要求，这样使用PHP开发的系统才能是真正的PHP系统。
◆  规范：编写的代码必须符合流行的编码规范，这样程序的可读性才比较好。
◆  博学：掌握OOA、OOD、YiiFramework 、Zendframework、cakephp、symfony、模板技术等流行技术，掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。
◆ 多去看别人写的代码，php优秀的框架很多，很多人在认知上就有一个错误。认为自己能用一个框架开发一个系统了就认为自己已经熟悉这个框架了，其实会使用他并没有什么一个框架基本都有用户手册，一看基本都会使用了，要想自己技术上面提升，建议多看看这些框架的实现原理（设计模式）。
]]></description>
			<content:encoded><![CDATA[<p>最近去了tencent，xunlei等互联网名企面试，总结一下:</p>
<ol>
<li>如果想进入这类企业进行底层开发的话必须对互联网各方面的技术原理了解的很清楚，例如apache实现原理。语言方面既然是php开发自然对c/c++要求比较高。往往需要自己写php扩展。使用<a href="http://www.blags.org/tags/mysql/"title="mysql" >mysql</a>自然想很多常见的，性能瓶颈要能有很好的解决方案。mysql 插件编写，apache模块编写。联系起来结合点还是要会c。</li>
<li>倘若是做中间层和前端工作则要求对css，<a href="http://www.blags.org/tags/javascript/"title="javascript" >javascript</a>要求比较高。当然对web的一系列实现原理也是要非常熟悉的。</li>
<li>对新技术要比较敏感，才能证明你有很好的学习能力和使用能力。</li>
<li>努力提高自己的英文口语，和阅读能力。往往很多新技术都是老外想出来的。等有了中文版也许这个技术已经不是那么新了。</li>
</ol>
<p>相信我们很多人都只是了解到中间的皮毛而已，对于技术原理。这类型的东西了解甚少。值得注意的一点，正则这个东西在他们严重也是很重要的。</p>
<p>想成为一位合格的php程序员（高级）,必须符合如下条件。</p>
<p>◆ 文件目录处理函数包80％以上的函数的功能的灵活运用。<br />
◆ 日期时间函数中的80％以上的函数的功能的灵活运用<br />
◆ 数学函数库中的100％的内容。<br />
◆ 网络库中的60％以上的内容，对各个函数的功能比较熟悉。<br />
◆ 字符串处理函数下的60％以上的内容，特别是各种处理函数。<br />
◆ 正则表达式函数下的90%以上的内容，特别是各种正则处理<br />
◆  一些安全库下的40％以上的内容，如果对于安全没有接触的话根本就不可能掌握PHP<br />
◆ XML处理，熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。<br />
◆ 图形图像函数库下的80%以上的内容，特别是一些图像生成和处理<br />
◆ MySQL 数据库函数下的90%以上的内容，特别是处理各种数据的函数<br />
◆ 数组处理函数下的90%以上的内容，特别是各种操作处理函数<br />
◆  其它PEAR，PECL，和一些扩展类库中的80%以上的内容，特别是一些常用的类的处理<br />
◆  针对不同的需求，查找不同的函数库。<br />
◆  测试：必须熟悉使用phpunit编写测试用例完成代码的自动测试。<br />
◆  管理：必须熟悉使用xinc, phing等完成工程管理的常用任务，例如工程编译、生成phpdoc、生成、版本控制、自动测试。<br />
◆  排错：应该可以根据异常信息比较快速的定位问题的原因和大致位置。<br />
◆  思想：必须掌握OOP的主要要求，这样使用PHP开发的系统才能是真正的PHP系统。<br />
◆  规范：编写的代码必须符合流行的编码规范，这样程序的可读性才比较好。<br />
◆  博学：掌握OOA、OOD、YiiFramework 、Zendframework、cakephp、symfony、模板技术等流行技术，掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。</p>
<p>◆ 多去看别人写的代码，php优秀的框架很多，很多人在认知上就有一个错误。认为自己能用一个框架开发一个系统了就认为自己已经熟悉这个框架了，其实会使用他并没有什么一个框架基本都有用户手册，一看基本都会使用了，要想自己技术上面提升，建议多看看这些框架的实现原理（设计模式）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-programmer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ubuntu 安装 ffmpeg php-ffmpeg</title>
		<link>http://www.blags.org/ubuntu-install-ffmpeg-php-ffmpeg/</link>
		<comments>http://www.blags.org/ubuntu-install-ffmpeg-php-ffmpeg/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 16:23:06 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unix&Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[mencoder]]></category>
		<category><![CDATA[php-ffmpeg]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=622</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;最近在做一个视频网站安装本地环境费了不少时间。本地是ubuntu 9.10 而服务器是redhat as4 所以到时候本人会把服务器安装过程和大家分享出来。
本人环境如下

php &#8212;- 5.210
apache 2.2
ubuntu 9.10


ffmpeg 功能很强大包括视频抓图，视频信息，视频转换，在线视频录制，而且是免费的。所有一般的视频网站都会采用他。
本人首先是采用编译安装，但是一直都没有成功。编译过程中出现了很多问题。安装要使用ffmpeg往往需要编译很多包。感觉很麻烦。这些包又依赖于很多其他包。安装顺序也有要求。所以放弃了。
最终采用ubuntu 强大的 apt-get (使用dpkg进行安装) 进行安装（当然cenos,red hat这类使用rpm的系统都可以使用yum进行安装,具体的安装方法可以在本站进行查找）.
apt-get 安装步骤如下:
sudo apt-get update ##更新以下源
sudo apt-get install ffmpeg
sudo apt-get install php5-ffmpeg
sudo apt-get install mencoder
sudo apt-get install flvtool2 ##视频转换flv
sudo apt-get install lame ##音频
sudo apt-get install yasm
编译安装ffmpeg 如下:
从 http://ffmpeg.mplayerhq.hu 下载
./configure &#8211;help ##查看有那些参数
./configure&#8211;prefix=/usr&#8211;enable-gpl&#8211;enable-shared&#8211;enable-libmp3lame&#8211;enable-libamr_nb&#8211;enable-libogg&#8211;enable-libvorbis&#8211;enable-libxvid&#8211;enable-liba52&#8211;enable-liba52bin&#8211;enable-pp&#8211;enable-libfaad&#8211;enable-libfaadbin&#8211;enable-libfaac&#8211;enable-pthreads&#8211;disable-ffserver&#8211;enable-x11grab
如果报错则安装该包，或者直接去掉该参数，只需要配置自己使用过程中需要使用到的就行了。
make &#38; make install
其他的则一个一个的下载解压在编译就是了。
具体参考本文：centos+zendce+red5+ffmpeg安装配置


下面是php-ffmpeg 使用的api。功能是很少了。
如果需要给视频抓图择需要使用shell脚本。也就是用到php当中的(system,exec,passthru)这类执行外部命令函数。
往往很多服务器都将种类函数视为危险函数屏蔽掉了。所以想做视频网站对服务器的配置要求比较高。
当然最好是自己的独立服务器。vps 也可以。随便你怎么整都可以。


View Code PHP$movie = new ffmpeg_movie&#40;String path_to_media, <a href="http://www.blags.org/ubuntu-install-ffmpeg-php-ffmpeg/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;最近在做一个视频网站安装本地环境费了不少时间。本地是<a href="http://www.blags.org/tags/ubuntu/"title="ubuntu" >ubuntu</a> 9.10 而服务器是redhat as4 所以到时候本人会把服务器安装过程和大家分享出来。</p>
<p>本人环境如下</p>
<ul>
<li>php &#8212;- 5.210</li>
<li>apache 2.2</li>
<li>ubuntu 9.10</li>
</ul>
<ol>
<li><a href="http://www.blags.org/tags/ffmpeg/"title="ffmpeg" >ffmpeg</a> 功能很强大包括视频抓图，视频信息，视频转换，在线视频录制，而且是免费的。所有一般的视频网站都会采用他。</li>
<li>本人首先是采用编译安装，但是一直都没有成功。编译过程中出现了很多问题。安装要使用ffmpeg往往需要编译很多包。感觉很麻烦。这些包又依赖于很多其他包。安装顺序也有要求。所以放弃了。</li>
<li>最终采用ubuntu 强大的 apt-get (使用dpkg进行安装) 进行安装（当然cenos,red hat这类使用rpm的系统都可以使用yum进行安装,具体的安装方法可以在本站进行查找）.</li>
<li>apt-get 安装步骤如下:<br />
sudo apt-get update ##更新以下源<br />
sudo apt-get install ffmpeg<br />
sudo apt-get install php5-ffmpeg<br />
sudo apt-get install mencoder<br />
sudo apt-get install flvtool2 ##视频转换flv<br />
sudo apt-get install lame ##音频<br />
sudo apt-get install yasm</li>
<li>编译安装ffmpeg 如下:<br />
从 http://ffmpeg.mplayerhq.hu 下载<br />
./configure &#8211;help ##查看有那些参数<br />
./configure&#8211;prefix=/usr&#8211;enable-gpl&#8211;enable-shared&#8211;enable-libmp3lame&#8211;enable-libamr_nb&#8211;enable-libogg&#8211;enable-libvorbis&#8211;enable-libxvid&#8211;enable-liba52&#8211;enable-liba52bin&#8211;enable-pp&#8211;enable-libfaad&#8211;enable-libfaadbin&#8211;enable-libfaac&#8211;enable-pthreads&#8211;disable-ffserver&#8211;enable-x11grab<br />
如果报错则安装该包，或者直接去掉该参数，只需要配置自己使用过程中需要使用到的就行了。<br />
make &amp; make install<br />
其他的则一个一个的下载解压在编译就是了。</li>
<li>具体参考本文：<a href="http://www.blags.org/centos_zendce_red5_ffmpeg/">centos+zendce+red5+ffmpeg安装配置</a></li>
</ol>
<ul>
<li>下面是php-ffmpeg 使用的api。功能是很少了。</li>
<li>如果需要给视频抓图择需要使用shell脚本。也就是用到php当中的(system,exec,passthru)这类执行外部命令函数。<br />
往往很多服务器都将种类函数视为危险函数屏蔽掉了。所以想做视频网站对服务器的配置要求比较高。<br />
当然最好是自己的独立服务器。vps 也可以。随便你怎么整都可以。</li>
</ul>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p622code9'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6229"><td class="code" id="p622code9"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$movie</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ffmpeg_movie<span style="color: #009900;">&#40;</span>String path_to_media<span style="color: #339933;">,</span> boolean persistent<span style="color: #009900;">&#41;</span>	Open a video or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> and <span style="color: #b1b100;">return</span> it <span style="color: #b1b100;">as</span> an object<span style="color: #339933;">.</span>
path_to_media <span style="color: #339933;">-</span> <a href="http://www.php.net/file"><span style="color: #990000;">File</span></a> path of video or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> to open<span style="color: #339933;">.</span>
persistent <span style="color: #339933;">-</span> Whether to open this media <span style="color: #b1b100;">as</span> a persistent resource<span style="color: #339933;">.</span> See the PHP documentation <span style="color: #b1b100;">for</span> more info about persistent resources
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getDuration</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the duration of a movie or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> in seconds<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFrameCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the number of frames in a movie or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFrameRate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the frame rate of a movie in fps<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFilename</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the path and name of the movie <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getComment</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the comment field from the movie or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTitle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the title field from the movie or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAuthor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> alias <span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getArtist</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the author field from the movie or the artist ID3 field from an mp3 <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCopyright</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the copyright field from the movie or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getArtist</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the artist ID3 field from an mp3 <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getGenre</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the genre ID3 field from an mp3 <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTrackNumber</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the track ID3 field from an mp3 <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the year ID3 field from an mp3 <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFrameHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the height of the movie in pixels<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFrameWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the width of the movie in pixels<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getPixelFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the pixel format of the movie<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getBitRate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the bit rate of the movie or audio <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> in bits per second<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getVideoBitRate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the bit rate of the video in bits per second<span style="color: #339933;">.</span>
NOTE<span style="color: #339933;">:</span> This only works <span style="color: #b1b100;">for</span> files with <a href="http://www.php.net/constant"><span style="color: #990000;">constant</span></a> bit rate<span style="color: #339933;">.</span>
&nbsp;
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAudioBitRate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the audio bit rate of the media <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> in bits per second<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAudioSampleRate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the audio sample rate of the media <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> in bits per second<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFrameNumber</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the <a href="http://www.php.net/current"><span style="color: #990000;">current</span></a> frame index<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getVideoCodec</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the name of the video codec used to encode this movie <span style="color: #b1b100;">as</span> a string<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAudioCodec</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the name of the audio codec used to encode this movie <span style="color: #b1b100;">as</span> a string<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAudioChannels</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> the number of audio channels in this movie <span style="color: #b1b100;">as</span> an integer<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasAudio</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> boolean value indicating whether the movie has an audio stream<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasVideo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">Return</span> boolean value indicating whether the movie has a video stream<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFrame</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>Integer framenumber<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>	Returns a frame from the movie <span style="color: #b1b100;">as</span> an ffmpeg_frame object<span style="color: #339933;">.</span> Returns <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #b1b100;">if</span> the frame was not found<span style="color: #339933;">.</span>
framenumber <span style="color: #339933;">-</span> Frame from the movie to <span style="color: #b1b100;">return</span><span style="color: #339933;">.</span> <span style="color: #b1b100;">If</span> no framenumber is specified<span style="color: #339933;">,</span> returns the <a href="http://www.php.net/next"><span style="color: #990000;">next</span></a> frame of the movie<span style="color: #339933;">.</span>
<span style="color: #000088;">$movie</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getNextKeyFrame</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	Returns the <a href="http://www.php.net/next"><span style="color: #990000;">next</span></a> <a href="http://www.php.net/key"><span style="color: #990000;">key</span></a> frame from the movie <span style="color: #b1b100;">as</span> an ffmpeg_frame object<span style="color: #339933;">.</span> Returns <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #b1b100;">if</span> the frame was not found<span style="color: #339933;">.</span></pre></td></tr></table></div>

<p>测试用例：<a href="http://www.blags.org/wp-content/Upload/ffmpeg-execute.php_.zip">ffmpeg-execute.php</a></p>
<p>安装过程出现错误解决:</p>
<ol>
<li>make: *** [<em>ffmpeg-php.lo</em>] <em>Error 1<br />
解决:.编译时加上 （php-config）路径：<br />
<code>--with-php-config=/usr/</code><code>local</code><code>/php/bin/php-config</code> </em></li>
<li>make: *** [ffmpeg_frame.lo] Error 1<br />
解决:mv ffmpeg_frame.loT ffmpeg_frame.lo</li>
<li>其他问题请检查自己的php版本。和php-ffmpeg是否一致。</li>
<li>还有其他问题可以在下面留言。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/ubuntu-install-ffmpeg-php-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>如何提高PHP编程效率</title>
		<link>http://www.blags.org/how-to-improve-the-efficiency-of-php-programming/</link>
		<comments>http://www.blags.org/how-to-improve-the-efficiency-of-php-programming/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 01:42:10 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[机制]]></category>
		<category><![CDATA[编程效率]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=614</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;用单引号代替双引号来包含字符串，这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量，单引号则不会，注意：只有echo能这么做，它是一种 可以把多个字符串当作参数的“函数”（译注：PHP手册中说echo是语言结构，不是真正的函数，故把函数加上了双引号）。
1、如果能将类的方法定义成static，就尽量定义成static，它的速度会提升将近4倍。
2、$row[’id’] 的速度是$row[id]的7倍。
3、echo 比 print 快，并且使用echo的多重参数（译注：指用逗号而不是句点）代替字符串连接，比如echo $str1,$str2。
4、在执行for循环之前确定最大循环数，不要每循环一次都计算最大值，最好运用foreach代替。
5、注销那些不用的变量尤其是大数组，以便释放内存。
6、尽量避免使用__get，__set，__autoload。
7、require_once()代价昂贵。
8、include文件时尽量使用绝对路径，因为它避免了PHP去include_path里查找文件的速度，解析操作系统路径所需的时间会更少。
9、如果你想知道脚本开始执行（译注：即服务器端收到客户端请求）的时刻，使用$_SERVER[‘REQUEST_TIME’]要好于time()。
10、函数代替正则表达式完成相同功能。
11、str_replace函数比preg_replace函数快，但strtr函数的效率是str_replace函数的四倍。
12、如果一个字符串替换函数，可接受数组或字符作为参数，并且参数长度不太长，那么可以考虑额外写一段替换代码，使得每次传递参数是一个字符，而不是只写一行代码接受数组作为查询和替换的参数。
13、使用选择分支语句（译注：即switch case）好于使用多个if，else if语句。
14、用@屏蔽错误消息的做法非常低效，极其低效。
15、打开apache的mod_deflate模块，可以提高网页的浏览速度。
16、数据库连接当使用完毕时应关掉，不要用长连接。
17、错误消息代价昂贵。
18、在方法中递增局部变量，速度是最快的。几乎与在函数中调用局部变量的速度相当。
19、递增一个全局变量要比递增一个局部变量慢2倍。
20、递增一个对象属性（如：$this-&#62;prop++）要比递增一个局部变量慢3倍。
21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。
22、仅定义一个局部变量而没在函数中调用它，同样会减慢速度（其程度相当于递增一个局部变量）。PHP大概会检查看是否存在全局变量。
23、方法调用看来与类中定义的方法的数量无关，因为我（在测试方法之前和之后都）添加了10个方法，但性能上没有变化。
24、派生类中的方法运行起来要快于在基类中定义的同样的方法。
25、调用带有一个参数的空函数，其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。
26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面，少用脚本。
27、除非脚本可以缓存，否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能，以免除编译开销。
28、尽量做缓存，可使用memcached。memcached是一款高性能的内存对象缓存系统，可用来加速动态Web应用程序，减轻数据库负载。对运算码 (OP code)的缓存很有用，使得脚本不必为每个请求做重新编译。
29、当操作字符串并需要检验其长度是否满足某种要求时，你想当然地会使用strlen()函数。此函数执行起来相当快，因为它不做任何计算，只返回在 zval 结构（C的内置数据结构，用于存储PHP变量）中存储的已知字符串长度。但是，由于strlen()是函数，多多少少会有些慢，因为函数调用会经过诸多步 骤，如字母小写化（译注：指函数名小写化，PHP不区分函数名大小写）、哈希查找，会跟随被调用的函数一起执行。在某些情况下，你可以使用isset() 技巧加速执行你的代码。
（举例如下）
if (strlen($foo) &#60; 5) { echo “Foo is too short”$$ }
（与下面的技巧做比较）
if (!isset($foo{5})) { echo “Foo is too short”$$ }
调用isset()恰巧比strlen()快，因为与后者不同的是，isset()作为一种语言结构，意味着它的执行不需要函数查找和字母小写化。也就是说，实际上在检验字符串长度的顶层代码中你没有花太多开销。
34、当执行变量$i的递增或递减时，$i++会比++$i慢一些。这种差异是PHP特有的，并不适用于其他语言，所以请不要修改你的C或Java代码并 指望它们能立即变快，没用的。++$i更快是因为它只需要3条指令(opcodes)，$i++则需要4条指令。后置递增实际上会产生一个临时变量，这个 临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种，正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意，因 为并不是所有的指令优化器都会做同样的优化处理，并且存在大量没有装配指令优化器的互联网服务提供商（ISPs）和服务器。
35、并不是事必面向对象(OOP)，面向对象往往开销很大，每个方法和对象调用都会消耗很多内存。
36、并非要用类实现所有的数据结构，数组也很有用。
37、不要把方法细分得过多，仔细想想你真正打算重用的是哪些代码？
38、当你需要时，你总能把代码分解成方法。
39、尽量采用大量的PHP内置函数。
40、如果在代码中存在大量耗时的函数，你可以考虑用C扩展的方式实现它们。
41、评估检验(profile)你的代码。检验器会告诉你，代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序，评估检验总体上可以显示出代码的瓶颈。
42、mod_zip可作为Apache模块，用来即时压缩你的数据，并可让数据传输量降低80%。
43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下，尽量用 file_get_contents，因为他的效率高得多！但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题；
44、尽量的少进行文件操作，虽然PHP的文件操作效率也不低的；
45、优化Select SQL语句，在可能的情况下尽量少的进行Insert、Update操作(在update上，我被恶批过)；
46、尽可能的使用PHP内部函数（但是我却为了找个PHP里面不存在的函数，浪费了本可以写出一个自定义函数的时间，经验问题啊！）；
47、循环内部不要声明变量，尤其是大变量：对象(这好像不只是PHP里面要注意的问题吧？)；
48、多维数组尽量不要循环嵌套赋值；
49、在可以用PHP内部字符串操作函数的情况下，不要用正则表达式；
50、foreach效率更高，尽量用foreach代替while和for循环；
51、用单引号替代双引号引用字符串；
52、“用i+=1代替i=i+1。符合c/c++的习惯，效率还高”；
53、对global变量，应该用完就unset()掉；
转载网络.
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;用单引号代替双引号来包含字符串，这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量，单引号则不会，注意：只有echo能这么做，它是一种 可以把多个字符串当作参数的“函数”（译注：PHP手册中说echo是语言结构，不是真正的函数，故把函数加上了双引号）。<br />
1、如果能将类的方法定义成static，就尽量定义成static，它的速度会提升将近4倍。<br />
2、$row[’id’] 的速度是$row[id]的7倍。<br />
3、echo 比 print 快，并且使用echo的多重参数（译注：指用逗号而不是句点）代替字符串连接，比如echo $str1,$str2。<br />
4、在执行for循环之前确定最大循环数，不要每循环一次都计算最大值，最好运用foreach代替。<br />
5、注销那些不用的变量尤其是大数组，以便释放内存。<br />
6、尽量避免使用__get，__set，__autoload。<br />
7、require_once()代价昂贵。<br />
8、include文件时尽量使用绝对路径，因为它避免了PHP去include_path里查找文件的速度，解析操作系统路径所需的时间会更少。<br />
9、如果你想知道脚本开始执行（译注：即服务器端收到客户端请求）的时刻，使用$_SERVER[‘REQUEST_TIME’]要好于time()。<br />
10、函数代替正则表达式完成相同功能。<br />
11、str_replace函数比preg_replace函数快，但strtr函数的效率是str_replace函数的四倍。<br />
12、如果一个字符串替换函数，可接受数组或字符作为参数，并且参数长度不太长，那么可以考虑额外写一段替换代码，使得每次传递参数是一个字符，而不是只写一行代码接受数组作为查询和替换的参数。<br />
13、使用选择分支语句（译注：即switch case）好于使用多个if，else if语句。<br />
14、用@屏蔽错误消息的做法非常低效，极其低效。<br />
15、打开apache的mod_deflate模块，可以提高网页的浏览速度。<br />
16、数据库连接当使用完毕时应关掉，不要用长连接。<br />
17、错误消息代价昂贵。<br />
18、在方法中递增局部变量，速度是最快的。几乎与在函数中调用局部变量的速度相当。<br />
19、递增一个全局变量要比递增一个局部变量慢2倍。<br />
20、递增一个对象属性（如：$this-&gt;prop++）要比递增一个局部变量慢3倍。<br />
21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。<br />
22、仅定义一个局部变量而没在函数中调用它，同样会减慢速度（其程度相当于递增一个局部变量）。PHP大概会检查看是否存在全局变量。<br />
23、方法调用看来与类中定义的方法的数量无关，因为我（在测试方法之前和之后都）添加了10个方法，但性能上没有变化。<br />
24、派生类中的方法运行起来要快于在基类中定义的同样的方法。<br />
25、调用带有一个参数的空函数，其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。<br />
26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面，少用脚本。<br />
27、除非脚本可以缓存，否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能，以免除编译开销。<br />
28、尽量做缓存，可使用memcached。memcached是一款高性能的内存对象缓存系统，可用来加速动态Web应用程序，减轻数据库负载。对运算码 (OP code)的缓存很有用，使得脚本不必为每个请求做重新编译。<br />
29、当操作字符串并需要检验其长度是否满足某种要求时，你想当然地会使用strlen()函数。此函数执行起来相当快，因为它不做任何计算，只返回在 zval 结构（C的内置数据结构，用于存储PHP变量）中存储的已知字符串长度。但是，由于strlen()是函数，多多少少会有些慢，因为函数调用会经过诸多步 骤，如字母小写化（译注：指函数名小写化，PHP不区分函数名大小写）、哈希查找，会跟随被调用的函数一起执行。在某些情况下，你可以使用isset() 技巧加速执行你的代码。<br />
（举例如下）<br />
if (strlen($foo) &lt; 5) { echo “Foo is too short”$$ }<br />
（与下面的技巧做比较）<br />
if (!isset($foo{5})) { echo “Foo is too short”$$ }<br />
调用isset()恰巧比strlen()快，因为与后者不同的是，isset()作为一种语言结构，意味着它的执行不需要函数查找和字母小写化。也就是说，实际上在检验字符串长度的顶层代码中你没有花太多开销。<br />
34、当执行变量$i的递增或递减时，$i++会比++$i慢一些。这种差异是PHP特有的，并不适用于其他语言，所以请不要修改你的C或<a href="http://www.blags.org/tags/java/"title="java" >Java</a>代码并 指望它们能立即变快，没用的。++$i更快是因为它只需要3条指令(opcodes)，$i++则需要4条指令。后置递增实际上会产生一个临时变量，这个 临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种，正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意，因 为并不是所有的指令优化器都会做同样的优化处理，并且存在大量没有装配指令优化器的互联网服务提供商（ISPs）和服务器。<br />
35、并不是事必面向对象(OOP)，面向对象往往开销很大，每个方法和对象调用都会消耗很多内存。<br />
36、并非要用类实现所有的数据结构，数组也很有用。<br />
37、不要把方法细分得过多，仔细想想你真正打算重用的是哪些代码？<br />
38、当你需要时，你总能把代码分解成方法。<br />
39、尽量采用大量的PHP内置函数。<br />
40、如果在代码中存在大量耗时的函数，你可以考虑用C扩展的方式实现它们。<br />
41、评估检验(profile)你的代码。检验器会告诉你，代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序，评估检验总体上可以显示出代码的瓶颈。<br />
42、mod_zip可作为Apache模块，用来即时压缩你的数据，并可让数据传输量降低80%。<br />
43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下，尽量用 file_get_contents，因为他的效率高得多！但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题；<br />
44、尽量的少进行文件操作，虽然PHP的文件操作效率也不低的；<br />
45、优化Select SQL语句，在可能的情况下尽量少的进行Insert、Update操作(在update上，我被恶批过)；<br />
46、尽可能的使用PHP内部函数（但是我却为了找个PHP里面不存在的函数，浪费了本可以写出一个自定义函数的时间，经验问题啊！）；<br />
47、循环内部不要声明变量，尤其是大变量：对象(这好像不只是PHP里面要注意的问题吧？)；<br />
48、多维数组尽量不要循环嵌套赋值；<br />
49、在可以用PHP内部字符串操作函数的情况下，不要用正则表达式；<br />
50、foreach效率更高，尽量用foreach代替while和for循环；<br />
51、用单引号替代双引号引用字符串；<br />
52、“用i+=1代替i=i+1。符合c/c++的习惯，效率还高”；<br />
53、对global变量，应该用完就unset()掉；</p>
<p>转载网络.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/how-to-improve-the-efficiency-of-php-programming/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>网站信息查询工具</title>
		<link>http://www.blags.org/site-information-query-tool/</link>
		<comments>http://www.blags.org/site-information-query-tool/#comments</comments>
		<pubDate>Mon, 24 May 2010 12:31:30 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[Seo]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[alexa]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[google page rank]]></category>
		<category><![CDATA[MD5]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=612</guid>
		<description><![CDATA[最近花了点时间写己几个对站长实用的工具。当然还有很多可以做有时间将其补上去.希望能帮到大家.
Martin MD5在线加解密 
Martin alexa排名查询
Martin Google PageRank查询
下面是一些seo方面的知识。
站外SEO
站外SEO，也可以说是脱离站点的搜索引擎技术，命名源自外部站点对网站在搜索引擎排名的影响，这些外部的因素是超出网站的控制的。最有用功能最强大的外部站点因素就是反向链接，即我们所说的外部链接。毫无疑问，外部链接对于一个站点收录进搜索引擎结果页面起到了重要作用。
那么如何产生高质量的反向链接呢？

 高质量的内容
产生高质量的外部链接最好的方法就是书写高质量的内容，你的文章能够让读者产生阅读的欲望而对文章进行转载。
合作伙伴、专业交换
与合作伙伴互相推荐链接。与行业网站、相关性网站进行链接。
分类目录
将网站提交到DMOZ目录、yahoo目录、ODP目录一个一些专业目录网站。
社会化书签
将网站加入百度搜藏、雅虎收藏、Google书签、QQ书签等社会化书签

站内SEO
站内SEO优化的几个重要因素：

 域名选择
选择域名有大量的学问，其重要的一点是尽量选择包括关键词的域名。其次查看这个域名之前是否有注册过。如果之前有高质量的站点和它做反向链接，那你就受益了；但是也有可能做反向链接的都是一些质量不好的站点，那你可能会被搜索引擎不友好一段时间了。
 关键词设置
为你的文章增加新的关键词将有利于搜索引擎的“蜘蛛”爬行文章索引，从而增加网站的质量。但不要堆砌太多的关键词，应该考虑“人们在搜索引擎中找到这篇文章，会搜索什么样的关键词”。
这些关键词需要在你的文章中被频繁的提及，可以遵循下面的方法：
关键词应该出现在网页标题标签里面；
在网页导出链接的链接文字中包含关键词；
用粗体显示关键词（至少试着做一次）；
在标签中提及该关键词（关于如何运用head标签有过争论，但一致都认为h1标签比h2、h3、 h4的影响效果更好，当然有些没有运用head标签的网页也有很高的PR值）；
图像ALT标签可以放入关键词；
整个文章中都要包含关键词，但最好在第一段第一句话就放入；
在元标签（meta 标签）放入关键词，建议关键词密度最好在5-20% 之间。
 站点设计
搜索引擎更喜欢友好的网页结构，无误的代码和明确导航的站点。确保你的页面都是有效的和在主流浏览器中的可视化。搜索引擎不喜欢太多的Flash、i frames和java script脚本，所以保持站点的干净整洁，也有利于搜索引擎“蜘蛛”更快更精确的爬行到你网站的索引。
 站点的内部链接
搜索引擎的工作方式是通过“蜘蛛”程序抓取网页信息，追踪你写的内容和通过网页的链接地址来寻找网页，抽取超链接地址。许多SEO专家都建议网站提供网站地图，在网站上的每个页面之间最好都有一个到两个的深入链接。网站要做的第一步是确保导航中包含目录页面 ，也要确保每个子页面都有链接回到主页面和其它的重要页面。
有规律的更新
网站更新的次数越频繁，搜索引擎蜘蛛爬行的也就越频繁。这意味着网站新文章几天甚至几小时内就可以出现在索引中，而不需要等几个星期。这是网站最好的受益方式。
 导出链接
导出链接会提高网站在搜索引擎中的排名，在文章中链接到其它相关站点对读者们是有用的，也有一些轶趣的证据来支持这种理论。太多的导出链接将影响降低你的网站，应该“适度是关键”。
每篇文章的主题
一个页面的主题越紧凑，搜索引擎对它的排名就越好。有时发现你写了很长的文章，覆盖了一些不同的话题，它们的相关性并不高，所以在搜索引擎上的排名也不好。如果你关心搜索引擎的排名，那最好把这样的文章切块，分成几个主题更密切的文章。最简单的方法是：选取关键词，围绕关键词书写文章，内容集中，不要写的过宽。
写适宜长度的文章
太短的文章不能获得较高的排名，一般控制每篇文章至少有300个字。另一方面，也不要让文章显得太长，因为这将不利于你保持关键词的密度，文章看上去也缺少紧凑。研究显示过长的文章会急剧减少读者的数量，他们在看第一眼的时候就选择了关闭文章。
 避免内容重复
搜索引擎在使用指南中严重警告过关于多个网页相同内容的问题。不管这些网页是你拥有的还是别人拥有的。因为一系列的垃圾站点就是不断复制网页内容（也窃取别人网站内容）。有一些争论关于什么样的内容算复制，其实要看这些内容是否对你的网站有用来选择。
 目录的数量
当我的目录过多的时候，我自己都会陷入麻烦。我认为大站点的等级比小站高，当然一些小站点也有高的等级，这并不是标准。目录越多，搜索引擎搜索的也就越全面。如果你有太多的页面，你需要组织它们以方便搜索引擎爬行。
 提交到搜索引擎
如果你做了所有站内SEO都该做的事，网站却还没有出现在搜索引擎中。那是因为搜索引擎还没有开始收录，每个搜索引擎都允许用户提交未收录站点，这个工程一般要等待3-5天。
SEO是依据通过对长期摸索、观察得出来的技术与经验，利用搜索引擎录取网站的规则，将网站的整体结构、网站布局、关键词分布及密度进行优化，使网站对搜索引擎的抓取有友好性，从而进行搜索引擎优化，达到网站提高排名的效果。由于搜索引擎的排名规则及算法是是在不断改变中的，而且这些规则和算法又是商业机密，所以不可能达到保证排在某几位的效果的。
seo=更多页面的收录+页面文字的友好安排+转化率
SEO分为白帽SEO和黑帽SEO，白帽SEO就是正规合理的运作，黑帽SEO就是作弊手法，下面介绍几种常见的作弊方法，希望大家不要用
 桥页（doorway pages）
通常是用软件自动生成大量包含关键词的网页，然后从这些网页做自动转向到主页。目的是希望这些以不同关键词为目标的桥页在搜索引擎中得到好的排名。当用户点击搜索结果的时候，会自动转到主页。有的时候是在桥页上放上一个通往主页的链接，而不自动转向。大部分情况下，这些桥页都是由软件生成的。你可以想象，生成的文字是杂乱无章，没有什么逻辑的。如果是由人写出来的真正包含关键词的文章，就不是桥页了。
关键词堆砌（keyword stuffing）
在网页中大量堆砌关键词，希望提高关键词密度，提高网页针对关键词的相关度。关键词堆砌可以在很多地方，比如在用户可以看到的文章本身中，也有在title网站标题，关键词标签keywords，说明标签description中。随着搜索引擎算法的改进，关键词密度已经不是一个重要的因素。
 隐藏文字（hidden text）
隐藏文字是在网页的HTML文件中放上含有关键词的文字，但这些字不能被用户所看到，只能被搜索引擎看到。可以有几种形式，比如说超小字号的文字，与背景同样颜色的文字，放在评论标签当中的文字，放在表格input标签里面的文字，通过样式表把文字放在不可见的层上面等等。其目的也都是想提高网页的相关性。有的时候，有的人还在这些地方放上与网站内容无关的，但是很热门的关键词，希望网页能在这些热门关键词下得到好的排名和流量。
隐藏链接（hidden link）
隐藏链接和隐藏文字相似，但是区别是把关键词放在链接里面，而这个链接也是用户所看不到的。
隐藏页面（cloaked page）
有的网页使用程序或脚本来检测来访问的是搜索引擎还是普通用户。如果是搜索引擎，网页就返回经过优化的网页版本。如果来访的是普通人，返回的是另外一个版本。这种作弊方式，通常用户无法发现。因为一旦你的浏览器去看这个网页，无论是在页面上还是在HTML源文件中，你所得到的都已经是与搜索引擎看到的不同的版本。检测的方法是，看一下这个网页的快照。
细微文字
许多做搜索引擎优化的人士明白隐藏文字可能会遭到惩罚，所以就将本来隐藏的文字以细微的字体暴露出来。细微文字即使是使用微小的字体在网页不显眼的地方书写带有关键词的句子。一般这些文字是放在网页的最顶端或者最底部。这些文字的色彩虽然不是和隐藏文字那样与背景使用相同颜色，但是经常也以非常相近的颜色出现。
在搜索引擎眼中，像“版权所有”这样的声明性的文字一般是用迷你字体来显示的。这些细微文字一般会被浏览者忽视，但是他们组成的句子会有滥用的嫌疑。
]]></description>
			<content:encoded><![CDATA[<p>最近花了点时间写己几个对站长实用的工具。当然还有很多可以做有时间将其补上去.希望能帮到大家.</p>
<h4><a href="http://md5.blags.org">Martin MD5在线加解密</a><a href="http://md5.blags.org"> </a></h4>
<h4><a href="http://md5.blags.org/alexa.php">Martin alexa排名查询</a></h4>
<h4><a href="http://md5.blags.org/pr.php">Martin Google PageRank查询</a></h4>
<p>下面是一些seo方面的知识。</p>
<p><strong>站外SEO</strong><br />
站外SEO，也可以说是脱离站点的搜索引擎技术，命名源自外部站点对网站在搜索引擎排名的影响，这些外部的因素是超出网站的控制的。最有用功能最强大的外部站点因素就是反向链接，即我们所说的外部链接。毫无疑问，外部链接对于一个站点收录进搜索引擎结果页面起到了重要作用。<br />
那么如何产生高质量的反向链接呢？</p>
<ol>
<li> 高质量的内容<br />
产生高质量的外部链接最好的方法就是书写高质量的内容，你的文章能够让读者产生阅读的欲望而对文章进行转载。</li>
<li>合作伙伴、专业交换<br />
与合作伙伴互相推荐链接。与行业网站、相关性网站进行链接。</li>
<li>分类目录<br />
将网站提交到DMOZ目录、yahoo目录、ODP目录一个一些专业目录网站。</li>
<li>社会化书签<br />
将网站加入百度搜藏、雅虎收藏、Google书签、QQ书签等社会化书签</li>
</ol>
<p><strong>站内SEO</strong></p>
<p>站内SEO优化的几个重要因素：</p>
<ul>
<li> 域名选择</li>
<p>选择域名有大量的学问，其重要的一点是尽量选择包括关键词的域名。其次查看这个域名之前是否有注册过。如果之前有高质量的站点和它做反向链接，那你就受益了；但是也有可能做反向链接的都是一些质量不好的站点，那你可能会被搜索引擎不友好一段时间了。</p>
<li> 关键词设置</li>
<p>为你的文章增加新的关键词将有利于搜索引擎的“蜘蛛”爬行文章索引，从而增加网站的质量。但不要堆砌太多的关键词，应该考虑“人们在搜索引擎中找到这篇文章，会搜索什么样的关键词”。<br />
这些关键词需要在你的文章中被频繁的提及，可以遵循下面的方法：<br />
关键词应该出现在网页标题标签里面；<br />
在网页导出链接的链接文字中包含关键词；<br />
用粗体显示关键词（至少试着做一次）；<br />
在标签中提及该关键词（关于如何运用head标签有过争论，但一致都认为h1标签比h2、h3、 h4的影响效果更好，当然有些没有运用head标签的网页也有很高的PR值）；<br />
图像ALT标签可以放入关键词；<br />
整个文章中都要包含关键词，但最好在第一段第一句话就放入；<br />
在元标签（meta 标签）放入关键词，建议关键词密度最好在5-20% 之间。</p>
<li> 站点设计</li>
<p>搜索引擎更喜欢友好的网页结构，无误的代码和明确导航的站点。确保你的页面都是有效的和在主流浏览器中的可视化。搜索引擎不喜欢太多的Flash、i frames和<a href="http://www.blags.org/tags/java/"title="java" >java</a> script脚本，所以保持站点的干净整洁，也有利于搜索引擎“蜘蛛”更快更精确的爬行到你网站的索引。</p>
<li> 站点的内部链接</li>
<p>搜索引擎的工作方式是通过“蜘蛛”程序抓取网页信息，追踪你写的内容和通过网页的链接地址来寻找网页，抽取超链接地址。许多SEO专家都建议网站提供网站地图，在网站上的每个页面之间最好都有一个到两个的深入链接。网站要做的第一步是确保导航中包含目录页面 ，也要确保每个子页面都有链接回到主页面和其它的重要页面。</p>
<li>有规律的更新</li>
<p>网站更新的次数越频繁，搜索引擎蜘蛛爬行的也就越频繁。这意味着网站新文章几天甚至几小时内就可以出现在索引中，而不需要等几个星期。这是网站最好的受益方式。</p>
<li> 导出链接</li>
<p>导出链接会提高网站在搜索引擎中的排名，在文章中链接到其它相关站点对读者们是有用的，也有一些轶趣的证据来支持这种理论。太多的导出链接将影响降低你的网站，应该“适度是关键”。</p>
<li>每篇文章的主题</li>
<p>一个页面的主题越紧凑，搜索引擎对它的排名就越好。有时发现你写了很长的文章，覆盖了一些不同的话题，它们的相关性并不高，所以在搜索引擎上的排名也不好。如果你关心搜索引擎的排名，那最好把这样的文章切块，分成几个主题更密切的文章。最简单的方法是：选取关键词，围绕关键词书写文章，内容集中，不要写的过宽。<br />
写适宜长度的文章<br />
太短的文章不能获得较高的排名，一般控制每篇文章至少有300个字。另一方面，也不要让文章显得太长，因为这将不利于你保持关键词的密度，文章看上去也缺少紧凑。研究显示过长的文章会急剧减少读者的数量，他们在看第一眼的时候就选择了关闭文章。</p>
<li> 避免内容重复</li>
<p>搜索引擎在使用指南中严重警告过关于多个网页相同内容的问题。不管这些网页是你拥有的还是别人拥有的。因为一系列的垃圾站点就是不断复制网页内容（也窃取别人网站内容）。有一些争论关于什么样的内容算复制，其实要看这些内容是否对你的网站有用来选择。</p>
<li> 目录的数量</li>
<p>当我的目录过多的时候，我自己都会陷入麻烦。我认为大站点的等级比小站高，当然一些小站点也有高的等级，这并不是标准。目录越多，搜索引擎搜索的也就越全面。如果你有太多的页面，你需要组织它们以方便搜索引擎爬行。</p>
<li> 提交到搜索引擎</li>
<p>如果你做了所有站内SEO都该做的事，网站却还没有出现在搜索引擎中。那是因为搜索引擎还没有开始收录，每个搜索引擎都允许用户提交未收录站点，这个工程一般要等待3-5天。<br />
SEO是依据通过对长期摸索、观察得出来的技术与经验，利用搜索引擎录取网站的规则，将网站的整体结构、网站布局、关键词分布及密度进行优化，使网站对搜索引擎的抓取有友好性，从而进行搜索引擎优化，达到网站提高排名的效果。由于搜索引擎的排名规则及算法是是在不断改变中的，而且这些规则和算法又是商业机密，所以不可能达到保证排在某几位的效果的。<br />
seo=更多页面的收录+页面文字的友好安排+转化率<br />
SEO分为白帽SEO和黑帽SEO，白帽SEO就是正规合理的运作，黑帽SEO就是作弊手法，下面介绍几种常见的作弊方法，希望大家不要用</p>
<li> 桥页（doorway pages）</li>
<p>通常是用软件自动生成大量包含关键词的网页，然后从这些网页做自动转向到主页。目的是希望这些以不同关键词为目标的桥页在搜索引擎中得到好的排名。当用户点击搜索结果的时候，会自动转到主页。有的时候是在桥页上放上一个通往主页的链接，而不自动转向。大部分情况下，这些桥页都是由软件生成的。你可以想象，生成的文字是杂乱无章，没有什么逻辑的。如果是由人写出来的真正包含关键词的文章，就不是桥页了。</p>
<li>关键词堆砌（keyword stuffing）</li>
<p>在网页中大量堆砌关键词，希望提高关键词密度，提高网页针对关键词的相关度。关键词堆砌可以在很多地方，比如在用户可以看到的文章本身中，也有在title网站标题，关键词标签keywords，说明标签description中。随着搜索引擎算法的改进，关键词密度已经不是一个重要的因素。</p>
<li> 隐藏文字（hidden text）</li>
<p>隐藏文字是在网页的HTML文件中放上含有关键词的文字，但这些字不能被用户所看到，只能被搜索引擎看到。可以有几种形式，比如说超小字号的文字，与背景同样颜色的文字，放在评论标签当中的文字，放在表格input标签里面的文字，通过样式表把文字放在不可见的层上面等等。其目的也都是想提高网页的相关性。有的时候，有的人还在这些地方放上与网站内容无关的，但是很热门的关键词，希望网页能在这些热门关键词下得到好的排名和流量。</p>
<li>隐藏链接（hidden link）</li>
<p>隐藏链接和隐藏文字相似，但是区别是把关键词放在链接里面，而这个链接也是用户所看不到的。</p>
<li>隐藏页面（cloaked page）</li>
<p>有的网页使用程序或脚本来检测来访问的是搜索引擎还是普通用户。如果是搜索引擎，网页就返回经过优化的网页版本。如果来访的是普通人，返回的是另外一个版本。这种作弊方式，通常用户无法发现。因为一旦你的浏览器去看这个网页，无论是在页面上还是在HTML源文件中，你所得到的都已经是与搜索引擎看到的不同的版本。检测的方法是，看一下这个网页的快照。</p>
<li>细微文字</li>
<p>许多做搜索引擎优化的人士明白隐藏文字可能会遭到惩罚，所以就将本来隐藏的文字以细微的字体暴露出来。细微文字即使是使用微小的字体在网页不显眼的地方书写带有关键词的句子。一般这些文字是放在网页的最顶端或者最底部。这些文字的色彩虽然不是和隐藏文字那样与背景使用相同颜色，但是经常也以非常相近的颜色出现。<br />
在搜索引擎眼中，像“版权所有”这样的声明性的文字一般是用迷你字体来显示的。这些细微文字一般会被浏览者忽视，但是他们组成的句子会有滥用的嫌疑。</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/site-information-query-tool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php+gettext多多语言的探讨</title>
		<link>http://www.blags.org/php_gettext_multi_languag/</link>
		<comments>http://www.blags.org/php_gettext_multi_languag/#comments</comments>
		<pubDate>Tue, 18 May 2010 14:40:20 +0000</pubDate>
		<dc:creator>huzhi</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[php gettext]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[print_r]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=608</guid>
		<description><![CDATA[
Web程序中使用php-gettext做多语言的探讨
一直在开发LAP电子商城系统，很多国内客户做外贸生意，不仅需要中英文，还通常要翻译成德文;研究了下php-gettext做多语言方案。写出来和大家分享下。
1,php-gettext的安装
1.1 gettext扩展在php5.2默认是开启的。
1.2 如果没开启，windows用户印象中是在php.ini开启php_gettext.dll扩展。
1.3 ubuntu系统中安装扩展很方便。sudo apt-get install php-gettext
1.4 如果服务器(如centos)是自己编译安装的。如果编译的时候没有&#8211;with-gettext.需要phpize编译安装gettext
进入php源码包，如 cd /usr/local/src/php/ext/gettext
phpize //运行后此目录下多出了一些configure文件
make
make install
按提示。将生成的gettext.so文件写入到php.ini中。如 extension=gettext.so;
重启 /etc/init.d/apache restart
2,php-gettext的使用.以一个具体的例子说明
如果debian系列的linux用户，注意查看本地语言支持。 vim /usr/share/i18n/SUPPORTED
中文:zh_CN.UTF-8
英文:en_US.UTF-8
德文:de_DE.UTF-8
法文:fr_FR.UTF-8
如果没有，则相应的安装之。方法:sudo apt-get locale-gen zh_CN.UTF-8
在php程序中,可以使用gettext()来标记需要翻译的语言包,gettext()函数常用_()代替;
2.1 建立文件目录
mkdir gettext
cd gettext
touch Locale.php
touch test.php
//中文mo文件的地方.
mkdir -p Locale/zh_CN/LC_MESSAGES
//英文文mo文件的地方.
mkdir -p Locale/en_US/LC_MESSAGES
2.2 Locale.php文件代码

View Code PHP&#60;?php
/**
* Dh_Locale 语言包类
*
* 系统语言包采用的是php-gettext模块.
* 如果模板使用的是smarty.使用了smarty-gettext插件.插件地址http://sourceforge.net/projects/smarty-gettext/
*  php-gettext的安装和使用(ubuntu平台下)
*  1 Installation of gettext package: sudo apt-get install php-gettext
*  2 Install locales: see all locales <a href="http://www.blags.org/php_gettext_multi_languag/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div>
<div style="padding-left: 30px;">Web程序中使用php-gettext做多语言的探讨</div>
<div style="padding-left: 30px;">一直在开发LAP电子商城系统，很多国内客户做外贸生意，不仅需要中英文，还通常要翻译成德文;研究了下php-gettext做多语言方案。写出来和大家分享下。</div>
<div style="padding-left: 30px;">1,php-gettext的安装</div>
<div style="padding-left: 30px;">1.1 gettext扩展在php5.2默认是开启的。</div>
<div style="padding-left: 30px;">1.2 如果没开启，windows用户印象中是在php.ini开启php_gettext.dll扩展。</div>
<div style="padding-left: 30px;">1.3 <a href="http://www.blags.org/tags/ubuntu/"title="ubuntu" >ubuntu</a>系统中安装扩展很方便。sudo apt-get install php-gettext</div>
<div style="padding-left: 30px;">1.4 如果服务器(如<a href="http://www.blags.org/tags/centos/"title="centos 系统" >centos</a>)是自己编译安装的。如果编译的时候没有&#8211;with-gettext.需要phpize编译安装gettext</div>
<div style="padding-left: 30px;">进入php源码包，如 cd /usr/local/src/php/ext/gettext</div>
<div style="padding-left: 30px;">phpize //运行后此目录下多出了一些configure文件</div>
<div style="padding-left: 30px;">make</div>
<div style="padding-left: 30px;">make install</div>
<div style="padding-left: 30px;">按提示。将生成的gettext.so文件写入到php.ini中。如 extension=gettext.so;</div>
<div style="padding-left: 30px;">重启 /etc/init.d/apache restart</div>
<div style="padding-left: 30px;">2,php-gettext的使用.以一个具体的例子说明</div>
<div style="padding-left: 30px;">如果debian系列的<a href="http://www.blags.org/tags/linux/"target="_self"title="linux" >linux</a>用户，注意查看本地语言支持。 <a href="http://www.blags.org/tags/vim/"title="vim" >vim</a> /usr/share/i18n/SUPPORTED</div>
<div style="padding-left: 30px;">中文:zh_CN.UTF-8</div>
<div style="padding-left: 30px;">英文:en_US.UTF-8</div>
<div style="padding-left: 30px;">德文:de_DE.UTF-8</div>
<div style="padding-left: 30px;">法文:fr_FR.UTF-8</div>
<div style="padding-left: 30px;">如果没有，则相应的安装之。方法:sudo apt-get locale-gen zh_CN.UTF-8</div>
<div style="padding-left: 30px;">在php程序中,可以使用gettext()来标记需要翻译的语言包,gettext()函数常用_()代替;</div>
<div style="padding-left: 30px;">2.1 建立文件目录</div>
<div style="padding-left: 30px;">mkdir gettext</div>
<div style="padding-left: 30px;">cd gettext</div>
<div style="padding-left: 30px;">touch Locale.php</div>
<div style="padding-left: 30px;">touch test.php</div>
<div style="padding-left: 30px;">//中文mo文件的地方.</div>
<div style="padding-left: 30px;">mkdir -p Locale/zh_CN/LC_MESSAGES</div>
<div style="padding-left: 30px;">//英文文mo文件的地方.</div>
<div style="padding-left: 30px;">mkdir -p Locale/en_US/LC_MESSAGES</div>
<div style="padding-left: 30px;">2.2 Locale.php文件代码</div>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p608code13'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p60813"><td class="code" id="p608code13"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #009933; font-style: italic;">/**
* Dh_Locale 语言包类
*
* 系统语言包采用的是php-gettext模块.
* 如果模板使用的是smarty.使用了smarty-gettext插件.插件地址http://sourceforge.net/projects/smarty-gettext/
*  php-gettext的安装和使用(ubuntu平台下)
*  1 Installation of gettext package: sudo apt-get install php-gettext
*  2 Install locales: see all locales in the file vim /usr/share/i18n/SUPPORTED
*  3 设置文件目录结构;如: Locale/zh_CN/LC_MESSAGES 或者 Locale/en_US/LC_MESSAGES
*  4 如果是smarty模板(使用{t}你好{/t}标记)。生成.c格式的文件;如:php -q tsmarty2c.php  $file &gt; text.c
*  5 生成.po格式的文件;xgettext -o Dh.po –join-existing –omit-header –no-location text.c
*  6 生成.mo格式的文件;msgfmt Dh.po -o Dh.mo
*  7 移动mo文件到相应的Locale/en_US/LC_MESSAGES文件夹下面
&lt;code&gt;
*
* @package
* @version $id$
* @copyright 1997-2005 The PHP Group
* @author erhuok &lt;erhu.ok@gmail.com&gt;
* @license PHP Version 3.0 {@link http://www.php.net/license/3_0.txt}
*/</span>
<span style="color: #000000; font-weight: bold;">class</span> Dh_Locale <span style="color: #009900;">&#123;</span>
<span style="color: #009933; font-style: italic;">/**
* _options 设置语言包的选项
*
* $this-&gt;_options['lang'] 应用程序使用什么语言包.php-gettext支持的所有语言都可以.
* 在ubuntu下使用sudo vim /usr/share/i18n/SUPPORTED 主要是utf8编码
* $this-&gt;_options['domain'] 生成的.mo文件的名字.一般是应用程序名
*
* @var array
* @access protected
*/</span>
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000088;">$_options</span><span style="color: #339933;">;</span>
<span style="color: #009933; font-style: italic;">/**
* __construct 构造函数 对象初始化时设置语言包的参数
*
* @access public
* @return void
*/</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$lang</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lang</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">case</span> ‘cn’<span style="color: #339933;">:</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>‘lang’ <span style="color: #339933;">=&gt;</span> ‘zh_CN<span style="color: #339933;">.</span>utf8′<span style="color: #339933;">,</span>’domain’<span style="color: #339933;">=&gt;</span>’Dh’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">case</span> ‘en’<span style="color: #339933;">:</span>
<span style="color: #b1b100;">case</span> ‘us’<span style="color: #339933;">:</span>
<span style="color: #b1b100;">case</span> ‘eu’<span style="color: #339933;">:</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>‘lang’ <span style="color: #339933;">=&gt;</span> ‘en_US<span style="color: #339933;">.</span>utf8′<span style="color: #339933;">,</span>’domain’<span style="color: #339933;">=&gt;</span>’Dh’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">case</span> ‘de’<span style="color: #339933;">:</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>‘lang’ <span style="color: #339933;">=&gt;</span> ‘de_DE<span style="color: #339933;">.</span>utf8′<span style="color: #339933;">,</span>’domain’<span style="color: #339933;">=&gt;</span>’Dh’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">case</span> ‘fr’<span style="color: #339933;">:</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>‘lang’ <span style="color: #339933;">=&gt;</span> ‘fr_FR<span style="color: #339933;">.</span>utf8′<span style="color: #339933;">,</span>’domain’<span style="color: #339933;">=&gt;</span>’Dh’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>‘lang’ <span style="color: #339933;">=&gt;</span> ‘zh_CN<span style="color: #339933;">.</span>utf8′<span style="color: #339933;">,</span>’domain’<span style="color: #339933;">=&gt;</span>’Dh’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setApplicationLocale</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009933; font-style: italic;">/**
* setOptions 设置应用程序语言包的参数 放在在数组$this-&gt;_options中
*
* @param mixed $options
* @access public
* @return void
*/</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setOptions<span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$option</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options<span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$option</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009933; font-style: italic;">/**
* setApplicationLocale  设置应用程序语言包
*
* @access public
* @return void
*/</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setApplicationLocale<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<a href="http://www.php.net/putenv"><span style="color: #990000;">putenv</span></a><span style="color: #009900;">&#40;</span>‘LANG<span style="color: #339933;">=</span>’<span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lang'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/setlocale"><span style="color: #990000;">setlocale</span></a><span style="color: #009900;">&#40;</span>LC_ALL<span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lang'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/bindtextdomain"><span style="color: #990000;">bindtextdomain</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'domain'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><a href="http://www.php.net/dirname"><span style="color: #990000;">dirname</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>’<span style="color: #339933;">/</span>Locale<span style="color: #339933;">/</span>’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/textdomain"><span style="color: #990000;">textdomain</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'domain'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/bind_textdomain_codeset"><span style="color: #990000;">bind_textdomain_codeset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_options<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'domain'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>’UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>′<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<div style="padding-left: 30px;">2.3 测试用例</div>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p608code14'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p60814"><td class="code" id="p608code14"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> <a href="http://www.php.net/dirname"><span style="color: #990000;">dirname</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>’<span style="color: #339933;">/</span>Locale<span style="color: #339933;">.</span>php’<span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//cn or en</span>
<span style="color: #000088;">$Lang</span> <span style="color: #339933;">=</span> ‘cn’<span style="color: #339933;">;</span>
<span style="color: #000088;">$Locale</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Dh_Locale<span style="color: #009900;">&#40;</span><span style="color: #000088;">$Lang</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$Checkout</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'AddressFields'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a>
<span style="color: #009900;">&#40;</span>
‘Email’ <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a>
<span style="color: #009900;">&#40;</span>
‘Type’ <span style="color: #339933;">=&gt;</span> ‘text’<span style="color: #339933;">,</span>
‘Label’ <span style="color: #339933;">=&gt;</span> _<span style="color: #009900;">&#40;</span>‘邮箱’<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
‘Title’ <span style="color: #339933;">=&gt;</span> _<span style="color: #009900;">&#40;</span>‘请填写邮箱’<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
‘<span style="color: #000000; font-weight: bold;">Class</span>’ <span style="color: #339933;">=&gt;</span> ‘required’<span style="color: #339933;">,</span>
‘Filter’ <span style="color: #339933;">=&gt;</span> ’string’<span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
‘PostCode’ <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a>
<span style="color: #009900;">&#40;</span>
‘Type’ <span style="color: #339933;">=&gt;</span> ‘text’<span style="color: #339933;">,</span>
‘Label’ <span style="color: #339933;">=&gt;</span> _<span style="color: #009900;">&#40;</span>‘邮政编码’<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
‘Title’ <span style="color: #339933;">=&gt;</span> _<span style="color: #009900;">&#40;</span>‘请填写邮政编码’<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
‘<span style="color: #000000; font-weight: bold;">Class</span>’ <span style="color: #339933;">=&gt;</span> ‘required’<span style="color: #339933;">,</span>
‘Filter’ <span style="color: #339933;">=&gt;</span> ‘int’<span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Checkout</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<div style="padding-left: 30px;">如果是smarty模板，需要使用smarty-gettext插件.使用{t}你好{/t}标记.如 &lt;a href=&#8221;http://sourceforge.net/projects/smarty-gettext/&#8221;&gt;{t}点击下载插件{/t}&lt;/a&gt;</div>
<div style="padding-left: 30px;">2.4 生成PO文件</div>
<div style="padding-left: 30px;">如果是PHP文件 xgettext &#8211;from-code UTF-8 -o Dh.po &#8211;join-existing test.php</div>
<div style="padding-left: 30px;">如果是smarty模板,在smarty-gettext插件中，有个tsmarty2c.php文件.</div>
<div style="padding-left: 30px;">cd gettext</div>
<div style="padding-left: 30px;">生成c文件</div>
<div style="padding-left: 30px;">php -q tsmarty2c.php test.tpl &gt; test.c</div>
<div style="padding-left: 30px;">在生成po文件</div>
<div style="padding-left: 30px;">xgettext &#8211;from-code UTF-8 -o Dh.po &#8211;join-existing test.c</div>
<div style="padding-left: 30px;">2.5 生成mo文件</div>
<div style="padding-left: 30px;">msgfmt -o Dh.mo Dh.po</div>
<div style="padding-left: 30px;">将mo文件移动到Locale/en_US/LC_MESSAGES下</div>
<div style="padding-left: 30px;">2.6 调试：localhost/test.php</div>
<div style="padding-left: 30px;">3. 后续思考</div>
<div style="padding-left: 30px;">对于html页面显示层次的语言包翻译，gettext能很方便的完成。但对于写入数据库的数据做多语言。如产品分类名，中文显示中文，英文显示英文。一般做法是多存一个字段，管理员填写分类的时候，填写中英名。当然，也有在数据库用language_id区分,还要新建一张产品名表。</div>
<div style="padding-left: 30px;">如果只填写了一种语言。非要用程序来做处理，也是可以。如</div>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p608code15'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p60815"><td class="code" id="p608code15"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #009933; font-style: italic;">/**
* ToTreeArray 处理无穷层次的函数
*
* @param mixed $rows 数据库查询出来分类数组
* @param mixed $ParentID 父ID如’parent_id’
* @param mixed $ID  类型ID如’type_id’
* @param mixed $Lang 需要翻译字段如’type_name’
* @static
* @access public
* @return array
*/</span>
<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> ToTreeArray<span style="color: #009900;">&#40;</span><span style="color: #000088;">$rows</span><span style="color: #339933;">,</span><span style="color: #000088;">$ParentID</span><span style="color: #339933;">,</span><span style="color: #000088;">$ID</span><span style="color: #339933;">,</span><span style="color: #000088;">$Lang</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$rows</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tree</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$index</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$rows</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$row</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$Lang</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$Lang</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> _<span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$Lang</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//对于分类而言，翻译分类名。</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ParentID</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tree</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tree</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ID</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span> <span style="color: #000088;">$tree</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ParentID</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Child'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ParentID</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Child'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ID</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span> <span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ParentID</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Child'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$tree</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<div style="padding-left: 30px;">此类做法还需探讨</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php_gettext_multi_languag/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>centos+zendce+red5+ffmpeg安装配置</title>
		<link>http://www.blags.org/centos_zendce_red5_ffmpeg/</link>
		<comments>http://www.blags.org/centos_zendce_red5_ffmpeg/#comments</comments>
		<pubDate>Sun, 16 May 2010 01:16:51 +0000</pubDate>
		<dc:creator>huzhi</dc:creator>
				<category><![CDATA[Unix&Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[red5]]></category>
		<category><![CDATA[zendce]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=605</guid>
		<description><![CDATA[本文主要是讲叙在centos服务器下如何快速的搭建AMP环境和流媒体服务器。至于性能测试和调优暂不涉及。
首先假设服务器已经安装了centos系统。推荐一款小软件。nmon for linux 服务器系统监测工具: wget http://sourceforge.net/projects/nmon/files/download/nmon_mainframe_12a_v2.zip/download
第一步，AMP环境采用Zend server 社区班Zend CE。
1.首先你要在建立Zend CE的下载库路径
vi /etc/yum.repos.d/zend.repo
添加的内容如下：

View Code ZEND[Zend]
name=Zend CE $releasever - $basearch - Released Updates
baseurl=http://repos.zend.com/rpm/ce/$basearch/
enabled=1
gpgcheck=0
[Zendce-noarch]
name=Zend CE - noarch
baseurl=http://repos.zend.com/rpm/ce/noarch
enabled=1
gpgcheck=0

2.开始安装如果服务器没有安装svn则需
yum install svn
如果服务器svn版本比较老。可以先删除在从yum安装。
# rpm -qa &#124; grep -i subversion
subversion-1.4.2-2.el5
subversion-1.4.2-2.el5
rpm -evf &#8211;allmatches subversion-1.4.2-2.el5
3.yum install zend-ce
yum clean all//清楚缓存
4.让linux自动加载zend库文件
vim /etc/profile
在最后面添加内容：
PATH=$PATH:/usr/local/zend/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/zend/lib
保存退出
source /etc/profile   //生效
zendtpl.sh status //查看Zend server运行状态
zendtpl.sh start  //apache start
zendtpl.sh stop
zendtpl.sh restart  等同于 /etc/init.d/httpd restart 和 service <a href="http://www.blags.org/centos_zendce_red5_ffmpeg/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>本文主要是讲叙在<a href="http://www.blags.org/tags/centos/"title="centos 系统" >centos</a>服务器下如何快速的搭建AMP环境和流媒体服务器。至于性能测试和调优暂不涉及。<br />
首先假设服务器已经安装了centos系统。推荐一款小软件。nmon for <a href="http://www.blags.org/tags/linux/"target="_self"title="linux" >linux</a> 服务器系统监测工具: wget <a href="http://sourceforge.net/projects/nmon/files/download/nmon_mainframe_12a_v2.zip/download">http://sourceforge.net/projects/nmon/files/download/nmon_mainframe_12a_v2.zip/download</a></p>
<p>第一步，AMP环境采用Zend server 社区班Zend CE。<br />
1.首先你要在建立Zend CE的下载库路径<br />
vi /etc/yum.repos.d/zend.repo<br />
添加的内容如下：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p605code18'); return false;">View Code</a> ZEND</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p60518"><td class="code" id="p605code18"><pre class="zend" style="font-family:monospace;">[Zend]
name=Zend CE $releasever - $basearch - Released Updates
baseurl=http://repos.zend.com/rpm/ce/$basearch/
enabled=1
gpgcheck=0
[Zendce-noarch]
name=Zend CE - noarch
baseurl=http://repos.zend.com/rpm/ce/noarch
enabled=1
gpgcheck=0</pre></td></tr></table></div>

<p>2.开始安装如果服务器没有安装svn则需<br />
yum install svn<br />
如果服务器svn版本比较老。可以先删除在从yum安装。<br />
# rpm -qa | grep -i subversion<br />
subversion-1.4.2-2.el5<br />
subversion-1.4.2-2.el5<br />
rpm -evf &#8211;allmatches subversion-1.4.2-2.el5<br />
3.yum install zend-ce<br />
yum clean all//清楚缓存<br />
4.让linux自动加载zend库文件<br />
<a href="http://www.blags.org/tags/vim/"title="vim" >vim</a> /etc/profile<br />
在最后面添加内容：<br />
PATH=$PATH:/usr/local/zend/bin<br />
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/zend/lib<br />
保存退出<br />
source /etc/profile   //生效<br />
zendtpl.sh status //查看Zend server运行状态<br />
zendtpl.sh start  //apache start<br />
zendtpl.sh stop<br />
zendtpl.sh restart  等同于 /etc/init.d/httpd restart 和 service httpd restart<br />
5.查看80端口是否打开！<br />
这个时候你可以通过netstat -an | grep 端口号来检验下是不是已经打开了某某服务<br />
6 查看zend  server的网页的方法 http://IP(或域名):10081/ZendServer/Login#1263971368039<br />
密码 test<br />
邮箱 test@test.com<br />
7 Zend CE没有安装msyql数据库。需要手动安装msyql。<br />
yum install <a href="http://www.blags.org/tags/mysql/"title="mysql" >mysql</a>-server<br />
yum install mysql<br />
mysqladmin -u root password &#8216;****&#8217; //设置root密码<br />
service mysqld start/stop/restart 开启/停止/重启mysql<br />
8 开启apache mod_rewriete;<br />
vim /etc/httpd/conf/httpd.conf 修改 AllowOverride All (默认为None);<br />
9 主要配置文件<br />
php /usr/local/zend/etc/php.ini<br />
apache /etc/httpd/conf/httpd.conf<br />
mysql /etc/my.conf</p>
<p>第二步， centos下安装red5的安装<br />
1 安装<a href="http://www.blags.org/tags/java/"title="java" >java</a>.red5是用户java语言写的一款开源流媒体服务器。<br />
yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel<br />
如果java版本低于1.5.下载新版jdk后安装。<br />
wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u16-linux-i586-rpm.bin?BundledLineItemUUID=om5IBe.ovo4AAAEkbKsxcJo0&amp;OrderID=BlRIBe.oOxwAAAEkXqsxcJo0&amp;ProductID=Dx1IBe.prBgAAAEirRcTvuC_&amp;FileName=/jdk-6u16-linux-i586-rpm.bink<br />
解压 ./jdk-6u16-linux-i586-rpm.bink<br />
安装 rpm -ivh jdk-6u16-linux-i586-rpm<br />
注意:如果服务器上有两种不同的java版本。需做如下操作：<br />
alternatives &#8211;install /usr/bin/java java /usr/java/jdk1.6.0_16/bin/java 2<br />
再选择版本。<br />
update-alternatives &#8211;config java<br />
2 安装apache-ant<br />
wget http://labs.xiaonei.com/apache-mirror/ant/binaries/apache-ant-1.7.1-bin.tar.gz<br />
tar -xzvf<br />
export ANT_HOME=/usr/local/apache-ant/<br />
sudo ln -s /usr/local/apache-ant/bin/ant /usr/bin/ant<br />
3 安装red5.<br />
从svn仓库中牵出red5的代码。<br />
svn co http://red5.googlecode.com/svn/java/server/trunk red5<br />
如果服务器没有安装svn则需<br />
yum install svn<br />
如果服务器svn版本比较老。可以先删除在从yum安装。<br />
rpm -qa | grep -i subversion<br />
subversion-1.4.2-2.el5<br />
subversion-1.4.2-2.el5<br />
rpm -evf &#8211;allmatches subversion-1.4.2-2.el5<br />
cd /usr/local/red5<br />
/usr/local/apache-ant/bin/ant prepare<br />
/usr/local/apache-ant/bin/ant dist<br />
cd disk<br />
./red.sh //启动red5服务器。常使用不挂断的启动：nohup ./red5.sh &amp;</p>
<p>第三步 <a href="http://www.blags.org/tags/ffmpeg/"title="ffmpeg" >ffmpeg</a>以及ffmpeg-php的安装。<br />
1 编译安装ffmpeg非常麻烦，yum可以方便的安装ffmpeg以及ffmpeg-dev，<br />
vim /etc/yum.repos.d/dag.repo<br />
输入：<br />
[dag]<br />
name=Dag RPM Repository for Red Hat Enterprise Linux<br />
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag<br />
gpgcheck=1<br />
enabled=1</p>
<p><span style="color: #ff0000;">Mark:以上源现在更新了,正确的如下:</span></p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p605code19'); return false;">View Code</a> YUM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p60519"><td class="code" id="p605code19"><pre class="yum" style="font-family:monospace;">[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el5/en/$basearch/dag
gpgcheck=1
enabled=1</pre></td></tr></table></div>

<p>&#8220;el5&#8243; 值得注意。看清楚自己的版本。<span style="color: #ff0000;">cat /etc/redhat-release，否则无法安装.</span></p>
<p>导入Dag的RPM_GPG_KEY,否则提示没有key无法安装<br />
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt<br />
rpm -import RPM-GPG-KEY.dag.txt<br />
安装ffmpeg&amp;ffmpeg-php<br />
yum install ffmpeg ffmpeg-devel<br />
2 ffmpeg-php的安装<br />
wget http://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2/download<br />
cd 进入php源码目录<br />
tar -xjf ffmpeg-php-0.6.0.tbz2<br />
phpize<br />
./configure &#8211;with-php-config=/usr/local/php/bin/php-config<br />
make<br />
make test<br />
make install<br />
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/<br />
php.ini配置文件里面增加 extensions=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg-php.so<br />
重启apache /etc/init.d/httpd retart 。 使用 php -r &#8220;phpinfo();&#8221; 查看ffmpeg-php模块是否安装成功;<br />
安装完毕。欢迎指正。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/centos_zendce_red5_ffmpeg/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>lamp 是什么</title>
		<link>http://www.blags.org/what-is-lamp/</link>
		<comments>http://www.blags.org/what-is-lamp/#comments</comments>
		<pubDate>Tue, 04 May 2010 12:35:15 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Unix&Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=594</guid>
		<description><![CDATA[LAMP是一个缩写(linux apache mysql php[perl,python])，起源于英国，它指一组通常一起使用来运行动态网站或者服务器的自由软件.
Linux，操作系统；
Apache，网页服务器；
MySQL，数据库管理系统（或者数据库服务器）；
PHP 和有时 Perl 或 Python，脚本语言。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的，但由于它们的廉价和普遍，这个组合开始流行（大多数Linux发行版本捆绑了这些软件）。当一起使用的时候，它们表现的像一个具有活力的解决方案包。
LAMP包的脚本组件中包括了CGIweb接口，它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序，并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流，甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。
Michael Kunze 在一篇为德国电脑杂志c&#8217;t（1998，第12期，230页）而写的文章中使用了缩略语 LAMP。这篇文章意在展示一系列的自由软件成为了商业包的替换物。由于IT世界众所周知的对缩写的爱好，Kunze提出LAMP这一容易被市场接受的术语来普及自由软件的使用。
O&#8217;Reilly和MySQL AB在英语人群中普及了这个术语。的确，MySQL AB 自己的市场推广在某种程度上基于LAMP包的推广。其他的项目和厂商则推行这个术语的一些变体，包括：
LAPP（以PostgreSQL 替代 MySQL）.
LAMP（最后两个字母意味着 Middleware 和 PostgreSQL）.
WAMP（以 Microsoft Windows 替代 Linux）.
MAMP（以 Macintosh 替代 Linux）.
LAMJ 意指 JSP/servlet.
BAMP 以 BSD 替代 Linux.
WIMP 指 Microsoft Windows, Microsoft IIS，MySQL, PHP.
AMP（省略了操作系统；Apple最喜欢这个词眼[来源请求]）.
XAMP（xml + apache + mysql + php）.
一些人借用LAMP 来描述一类可定制组成的系统，而不是制造一系列新词，并用它来表示这些系统和统一打包的页面开发环境的不同。
]]></description>
			<content:encoded><![CDATA[<p>LAMP是一个缩写(<a href="http://www.blags.org/tags/linux/"target="_self"title="linux" >linux</a> apache <a href="http://www.blags.org/tags/mysql/"title="mysql" >mysql</a> php[<a href="http://www.blags.org/tags/Perl/"title="Perl" >perl</a>,<a href="http://www.blags.org/tags/python/"title="python" >python</a>])，起源于英国，它指一组通常一起使用来运行动态网站或者服务器的自由软件.<br />
Linux，操作系统；<br />
Apache，网页服务器；<br />
MySQL，数据库管理系统（或者数据库服务器）；<br />
PHP 和有时 Perl 或 Python，脚本语言。<br />
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的，但由于它们的廉价和普遍，这个组合开始流行（大多数Linux发行版本捆绑了这些软件）。当一起使用的时候，它们表现的像一个具有活力的解决方案包。<br />
LAMP包的脚本组件中包括了CGIweb接口，它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序，并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流，甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。<br />
Michael Kunze 在一篇为德国电脑杂志c&#8217;t（1998，第12期，230页）而写的文章中使用了缩略语 LAMP。这篇文章意在展示一系列的自由软件成为了商业包的替换物。由于IT世界众所周知的对缩写的爱好，Kunze提出LAMP这一容易被市场接受的术语来普及自由软件的使用。<br />
O&#8217;Reilly和MySQL AB在英语人群中普及了这个术语。的确，MySQL AB 自己的市场推广在某种程度上基于LAMP包的推广。其他的项目和厂商则推行这个术语的一些变体，包括：<br />
LAPP（以PostgreSQL 替代 MySQL）.<br />
LAMP（最后两个字母意味着 Middleware 和 PostgreSQL）.<br />
WAMP（以 Microsoft Windows 替代 Linux）.<br />
MAMP（以 Macintosh 替代 Linux）.<br />
LAMJ 意指 JSP/servlet.<br />
BAMP 以 BSD 替代 Linux.<br />
WIMP 指 Microsoft Windows, Microsoft IIS，MySQL, PHP.<br />
AMP（省略了操作系统；Apple最喜欢这个词眼[来源请求]）.<br />
XAMP（xml + apache + mysql + php）.<br />
一些人借用LAMP 来描述一类可定制组成的系统，而不是制造一系列新词，并用它来表示这些系统和统一打包的页面开发环境的不同。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/what-is-lamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php 配置文件 php.ini 详细介绍</title>
		<link>http://www.blags.org/php-configuration-file-php-ini-details/</link>
		<comments>http://www.blags.org/php-configuration-file-php-ini-details/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 00:57:49 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[工作]]></category>
		<category><![CDATA[进制]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=581</guid>
		<description><![CDATA[
View Code PHP;;;;;;;;;;;;;;;;;
;; 关于php.ini ;;
;;;;;;;;;;;;;;;;;
; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录中。
; 最新版本的php.ini可以在下面两个位置查看：
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co
&#160;
;;;;;;;;;;;;
;;  语法  ;;
;;;;;;;;;;;;
; 该文件的语法非常简单。空白字符和以分号开始的行被简单地忽略。
; 章节标题&#40;例如: &#91;php&#93;&#41;也被简单地忽略，即使将来它们可能有某种意义。
;
; 设置指令的格式如下：
; directive = value
; 指令名&#40;directive&#41;是大小写敏感的！所以&#34;foo=bar&#34;不同于&#34;FOO=bar&#34;。
; 值&#40;value&#41;可以是：
; 1. 用引号界定的字符串&#40;如：&#34;foo&#34;&#41;
; 2. 一个数字&#40;整数或浮点数，如：0, 1, 34, -1, 33.55&#41;
; 3. 一个PHP常量&#40;如：E_ALL, M_PI&#41;
; 4. 一个INI常量&#40;On, Off, none&#41;
; 5. 一个表达式&#40;如：E_ALL &#38;amp; ~E_NOTICE&#41;
;
; INI文件中的表达式仅使用：位运算符、逻辑非、圆括号：
; &#124; 位或
; &#38;amp; 位与
; ~ 位非
; ! 逻辑非
;
; 布尔标志用 On 表示打开，用 Off 表示关闭。
;
; <a href="http://www.blags.org/php-configuration-file-php-ini-details/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[
<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p581code21'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p58121"><td class="code" id="p581code21"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">;;;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span> 关于php<span style="color: #339933;">.</span>ini <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;</span> 这个文件必须命名为<span style="color: #0000ff;">'php.ini'</span>并放置在httpd<span style="color: #339933;">.</span>conf中PHPINIDir指令指定的目录中。
<span style="color: #339933;">;</span> 最新版本的php<span style="color: #339933;">.</span>ini可以在下面两个位置查看：
<span style="color: #339933;">;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co</span>
<span style="color: #339933;">;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co</span>
&nbsp;
<span style="color: #339933;">;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span>  语法  <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;</span>
<span style="color: #339933;">;</span> 该文件的语法非常简单。空白字符和以分号开始的行被简单地忽略。
<span style="color: #339933;">;</span> 章节标题<span style="color: #009900;">&#40;</span>例如<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>php<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>也被简单地忽略，即使将来它们可能有某种意义。
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 设置指令的格式如下：
<span style="color: #339933;">;</span> directive <span style="color: #339933;">=</span> value
<span style="color: #339933;">;</span> 指令名<span style="color: #009900;">&#40;</span>directive<span style="color: #009900;">&#41;</span>是大小写敏感的！所以<span style="color: #0000ff;">&quot;foo=bar&quot;</span>不同于<span style="color: #0000ff;">&quot;FOO=bar&quot;</span>。
<span style="color: #339933;">;</span> 值<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span>可以是：
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">.</span> 用引号界定的字符串<span style="color: #009900;">&#40;</span>如：<span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">.</span> 一个数字<span style="color: #009900;">&#40;</span>整数或浮点数，如：<span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">34</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color:#800080;">33.55</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">.</span> 一个PHP常量<span style="color: #009900;">&#40;</span>如：<span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #339933;">,</span> M_PI<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">.</span> 一个INI常量<span style="color: #009900;">&#40;</span>On<span style="color: #339933;">,</span> Off<span style="color: #339933;">,</span> none<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">.</span> 一个表达式<span style="color: #009900;">&#40;</span>如：<span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> ~<span style="color: #009900; font-weight: bold;">E_NOTICE</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> INI文件中的表达式仅使用：位运算符、逻辑非、圆括号：
<span style="color: #339933;">;</span> <span style="color: #339933;">|</span> 位或
<span style="color: #339933;">;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> 位与
<span style="color: #339933;">;</span> ~ 位非
<span style="color: #339933;">;</span> <span style="color: #339933;">!</span> 逻辑非
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 布尔标志用 On 表示打开，用 Off 表示关闭。
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 一个空字符串可以用在等号后不写任何东西表示，或者用 none 关键字：
<span style="color: #339933;">;</span> foo <span style="color: #339933;">=</span>         <span style="color: #339933;">;</span> 将foo设为空字符串
<span style="color: #339933;">;</span> foo <span style="color: #339933;">=</span> none    <span style="color: #339933;">;</span> 将foo设为空字符串
<span style="color: #339933;">;</span> foo <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;none&quot;</span>  <span style="color: #339933;">;</span> 将foo设为字符串<span style="color: #0000ff;">'none'</span>
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 如果你在指令值中使用动态扩展<span style="color: #009900;">&#40;</span>PHP扩展或Zend扩展<span style="color: #009900;">&#41;</span>中的常量，
<span style="color: #339933;">;</span> 那么你只能在加载这些动态扩展的指令行之后使用这些常量。
&nbsp;
<span style="color: #339933;">;;;;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span>  httpd<span style="color: #339933;">.</span>conf  <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;</span> 可以在httpd<span style="color: #339933;">.</span>conf中针对特定虚拟主机或目录覆盖php<span style="color: #339933;">.</span>ini的值，以进行更灵活的配置：
<span style="color: #339933;">;</span> php_admin_value name value  <span style="color: #339933;">;</span>设置非bool型的指令，将value设为none则清除先前的设定
<span style="color: #339933;">;</span> php_admin_flag  name on<span style="color: #339933;">|</span>off <span style="color: #339933;">;</span>仅用于设置bool型的指令
<span style="color: #339933;">;</span> <span style="color: #009900;">&#91;</span>提示<span style="color: #009900;">&#93;</span>因为很多指令不允许使用php_value<span style="color: #339933;">/</span>php_flag进行设置，因此不建议使用这两个。
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> PHP常量<span style="color: #009900;">&#40;</span>如<span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #009900;">&#41;</span>仅能在php<span style="color: #339933;">.</span>ini中使用，在httpd<span style="color: #339933;">.</span>conf中必须使用相应的掩码值。
&nbsp;
<span style="color: #339933;">;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2008</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span>日更新<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;==========================================================================================</span>
<span style="color: #339933;">;;=====================================</span>配置指令详解<span style="color: #339933;">========================================</span>
<span style="color: #339933;">;==========================================================================================</span>
<span style="color: #339933;">;</span> 以下每个指令的设定值都与 PHP<span style="color: #339933;">-</span>5<span style="color: #339933;">.</span>2<span style="color: #339933;">.</span>5 内建的默认值相同。
<span style="color: #339933;">;</span> 也就是说，如果<span style="color: #0000ff;">'php.ini'</span>不存在，或者你删掉了某些行，默认值与之相同。
&nbsp;
<span style="color: #339933;">;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span>  Apache  <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;;;</span>
<span style="color: #009900;">&#91;</span>Apache<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 仅在将PHP作为Apache模块时才有效。
&nbsp;
child_terminate <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> PHP脚本在请求结束后是否允许使用<a href="http://www.php.net/apache_child_terminate"><span style="color: #990000;">apache_child_terminate</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数终止子进程。
<span style="color: #339933;">;</span> 该指令仅在UNIX平台上将PHP安装为Apache1<span style="color: #339933;">.</span>3的模块时可用。其他情况下皆不存在。
&nbsp;
engine <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否启用PHP解析引擎。
<span style="color: #339933;">;</span> 提示：可以在httpd<span style="color: #339933;">.</span>conf中基于目录或者虚拟主机来打开或者关闭PHP解析引擎。
&nbsp;
last_modified <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在Last<span style="color: #339933;">-</span>Modified应答头中放置该PHP脚本的最后修改时间。
&nbsp;
xbithack <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否不管文件结尾是什么，都作为PHP可执行位组来解析。
&nbsp;
<span style="color: #339933;">;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span>  PHP核心  <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;;;;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>DateTime<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 前四个配置选项目前仅用于<a href="http://www.php.net/date_sunrise"><span style="color: #990000;">date_sunrise</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>和<a href="http://www.php.net/date_sunset"><span style="color: #990000;">date_sunset</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数。
&nbsp;
<a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #339933;">.</span>default_latitude <span style="color: #339933;">=</span> <span style="color:#800080;">31.7667</span>
<span style="color: #339933;">;</span> 默认纬度
&nbsp;
<a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #339933;">.</span>default_longitude <span style="color: #339933;">=</span> <span style="color:#800080;">35.2333</span>
<span style="color: #339933;">;</span> 默认经度
&nbsp;
<a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #339933;">.</span>sunrise_zenith <span style="color: #339933;">=</span> <span style="color:#800080;">90.583333</span>
<span style="color: #339933;">;</span> 默认日出天顶
&nbsp;
<a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #339933;">.</span>sunset_zenith <span style="color: #339933;">=</span> <span style="color:#800080;">90.583333</span>
<span style="color: #339933;">;</span> 默认日落天顶
&nbsp;
<a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #339933;">.</span>timezone <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 未设定TZ环境变量时用于所有日期和时间函数的默认时区。
<span style="color: #339933;">;</span> 中国大陆应当使用<span style="color: #0000ff;">&quot;PRC&quot;</span>
<span style="color: #339933;">;</span> 应用时区的优先顺序为：
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">.</span> 用<a href="http://www.php.net/date_default_timezone_set"><span style="color: #990000;">date_default_timezone_set</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数设定的时区<span style="color: #009900;">&#40;</span>如果设定了的话<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">.</span> TZ 环境变量<span style="color: #009900;">&#40;</span>如果非空的话<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">.</span> 该指令的值<span style="color: #009900;">&#40;</span>如果设定了的话<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">.</span> PHP自己推测<span style="color: #009900;">&#40;</span>如果操作系统支持<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">.</span> 如果以上都不成功，则使用 <span style="color: #0000ff;">&quot;UTC&quot;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span><a href="http://www.php.net/assert"><span style="color: #990000;">Assert</span></a><span style="color: #009900;">&#93;</span>
&nbsp;
<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a><span style="color: #339933;">.</span>active <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否启用<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>断言评估
&nbsp;
<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a><span style="color: #339933;">.</span>bail <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在发生失败断言时中止脚本的执行
&nbsp;
<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a><span style="color: #339933;">.</span>callback <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 发生失败断言时执行的回调函数
&nbsp;
<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a><span style="color: #339933;">.</span>quiet_eval <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用安静评估<span style="color: #009900;">&#40;</span>不显示任何错误信息，相当于<a href="http://www.php.net/error_reporting"><span style="color: #990000;">error_reporting</span></a><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 若关闭则在评估断言表达式的时候使用当前的<a href="http://www.php.net/error_reporting"><span style="color: #990000;">error_reporting</span></a>指令值。
&nbsp;
<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a><span style="color: #339933;">.</span>warning <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否对每个失败断言都发出警告
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>SafeMode<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 安全模式是为了解决共享服务器的安全问题而设立的。
<span style="color: #339933;">;</span> 但试图在PHP层解决这个问题在结构上是不合理的，
<span style="color: #339933;">;</span> 正确的做法应当是修改web服务器层和操作系统层。
<span style="color: #339933;">;</span> 因此在PHP6中废除了安全模式，并使用基于open_basedir的安全防护。
<span style="color: #339933;">;</span> 此部分指令在PHP6中已经全部被删除。
&nbsp;
safe_mode <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否启用安全模式。
<span style="color: #339933;">;</span> 打开时，PHP将检查当前脚本的拥有者是否和被操作的文件的拥有者相同，
<span style="color: #339933;">;</span> 相同则允许操作，不同则拒绝操作。
&nbsp;
safe_mode_gid <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 在安全模式下，默认在访问文件时会做UID比较检查。
<span style="color: #339933;">;</span> 但有些情况下严格的UID检查反而是不适合的，宽松的GID检查已经足够。
<span style="color: #339933;">;</span> 如果你想将其放宽到仅做GID比较，可以打开这个参数。
&nbsp;
safe_mode_allowed_env_vars <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;PHP_&quot;</span>
<span style="color: #339933;">;</span> 在安全模式下，用户仅可以更改的环境变量的前缀列表<span style="color: #009900;">&#40;</span>逗号分隔<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 允许用户设置某些环境变量，可能会导致潜在的安全漏洞。
<span style="color: #339933;">;</span> 注意<span style="color: #339933;">:</span> 如果这一参数值为空，PHP将允许用户更改任意环境变量！
&nbsp;
safe_mode_protected_env_vars <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;LD_LIBRARY_PATH&quot;</span>
<span style="color: #339933;">;</span> 在安全模式下，用户不能更改的环境变量列表<span style="color: #009900;">&#40;</span>逗号分隔<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 这些变量即使在safe_mode_allowed_env_vars指令设置为允许的情况下也会得到保护。
&nbsp;
safe_mode_exec_dir <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/usr/local/php/bin&quot;</span>
<span style="color: #339933;">;</span> 在安全模式下，只有该目录下的可执行程序才允许被执行系统程序的函数执行。
<span style="color: #339933;">;</span> 这些函数是：<a href="http://www.php.net/system"><span style="color: #990000;">system</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/escapeshellarg"><span style="color: #990000;">escapeshellarg</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/escapeshellcmd"><span style="color: #990000;">escapeshellcmd</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/exec"><span style="color: #990000;">exec</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/passthru"><span style="color: #990000;">passthru</span></a><span style="color: #339933;">,</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/proc_close"><span style="color: #990000;">proc_close</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/proc_get_status"><span style="color: #990000;">proc_get_status</span></a><span style="color: #339933;">,</span> proc_nice<span style="color: #339933;">,</span> <a href="http://www.php.net/proc_open"><span style="color: #990000;">proc_open</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/proc_terminate"><span style="color: #990000;">proc_terminate</span></a><span style="color: #339933;">,</span> <a href="http://www.php.net/shell_exec"><span style="color: #990000;">shell_exec</span></a>
&nbsp;
safe_mode_include_dir <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 在安全模式下，该组目录和其子目录下的文件被包含时，将跳过UID<span style="color: #339933;">/</span>GID检查。
<span style="color: #339933;">;</span> 换句话说，如果此处的值为空，任何UID<span style="color: #339933;">/</span>GID不符合的文件都不允许被包含。
<span style="color: #339933;">;</span> 这里设置的目录必须已经存在于include_path指令中或者用完整路径来包含。
<span style="color: #339933;">;</span> 多个目录之间用冒号<span style="color: #009900;">&#40;</span>Win下为分号<span style="color: #009900;">&#41;</span>隔开。
<span style="color: #339933;">;</span> 指定的限制实际上是一个前缀，而非一个目录名，
<span style="color: #339933;">;</span> 也就是说<span style="color: #0000ff;">&quot;/dir/incl&quot;</span>将允许访问<span style="color: #0000ff;">&quot;/dir/include&quot;</span>和<span style="color: #0000ff;">&quot;/dir/incls&quot;</span>
<span style="color: #339933;">;</span> 如果您希望将访问控制在一个指定的目录，那么请在结尾加上斜线。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Safe<span style="color: #009900;">&#93;</span>
&nbsp;
allow_url_fopen <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否允许打开远程文件
&nbsp;
allow_url_include <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否允许<span style="color: #b1b100;">include</span><span style="color: #339933;">/</span><span style="color: #b1b100;">require</span>远程文件。
&nbsp;
disable_classes <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 该指令接受一个用逗号分隔的类名列表，以禁用特定的类。
&nbsp;
disable_functions <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 该指令接受一个用逗号分隔的函数名列表，以禁用特定的函数。
&nbsp;
enable_dl <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否允许使用<a href="http://www.php.net/dl"><span style="color: #990000;">dl</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数。<a href="http://www.php.net/dl"><span style="color: #990000;">dl</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数仅在将PHP作为apache模块安装时才有效。
<span style="color: #339933;">;</span> 禁用<a href="http://www.php.net/dl"><span style="color: #990000;">dl</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数主要是出于安全考虑，因为它可以绕过open_basedir指令的限制。
<span style="color: #339933;">;</span> 在安全模式下始终禁用<a href="http://www.php.net/dl"><span style="color: #990000;">dl</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数，而不管此处如何设置。
<span style="color: #339933;">;</span> PHP6中删除了该指令，相当于设为Off。
&nbsp;
expose_php <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否暴露PHP被安装在服务器上的事实<span style="color: #009900;">&#40;</span>在http头中加上其签名<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 它不会有安全上的直接威胁，但它使得客户端知道服务器上安装了PHP。
&nbsp;
open_basedir <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 将PHP允许操作的所有文件<span style="color: #009900;">&#40;</span>包括文件自身<span style="color: #009900;">&#41;</span>都限制在此组目录列表下。
<span style="color: #339933;">;</span> 当一个脚本试图打开一个指定目录树之外的文件时，将遭到拒绝。
<span style="color: #339933;">;</span> 所有的符号连接都会被解析，所以不可能通过符号连接来避开此限制。
<span style="color: #339933;">;</span> 特殊值<span style="color: #0000ff;">'.'</span>指定了存放该脚本的目录将被当做基准目录，
<span style="color: #339933;">;</span> 但这有些危险，因为脚本的工作目录可以轻易被<a href="http://www.php.net/chdir"><span style="color: #990000;">chdir</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>改变。
<span style="color: #339933;">;</span> 对于共享服务器，在httpd<span style="color: #339933;">.</span>conf中针对不同的虚拟主机或目录灵活设置该指令将变得非常有用。
<span style="color: #339933;">;</span> 在Windows中用分号分隔目录，UNIX系统中用冒号分隔目录。
<span style="color: #339933;">;</span> 作为Apache模块时，父目录中的open_basedir路径将自动被继承。
<span style="color: #339933;">;</span> 指定的限制实际上是一个前缀，而非一个目录名，
<span style="color: #339933;">;</span> 也就是说<span style="color: #0000ff;">&quot;/dir/incl&quot;</span>将允许访问<span style="color: #0000ff;">&quot;/dir/include&quot;</span>和<span style="color: #0000ff;">&quot;/dir/incls&quot;</span>，
<span style="color: #339933;">;</span> 如果您希望将访问控制在一个指定的目录，那么请在结尾加上一个斜线。
<span style="color: #339933;">;</span> 默认是允许打开所有文件。
&nbsp;
sql<span style="color: #339933;">.</span>safe_mode <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用SQL安全模式。
<span style="color: #339933;">;</span> 如果打开，指定默认值的数据库连接函数将会使用这些默认值代替支持的参数。
<span style="color: #339933;">;</span> 对于每个不同数据库的连接函数，其默认值请参考相应的手册页面。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Error<span style="color: #009900;">&#93;</span>
&nbsp;
<a href="http://www.php.net/error_reporting"><span style="color: #990000;">error_reporting</span></a> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> ~<span style="color: #009900; font-weight: bold;">E_NOTICE</span>
<span style="color: #339933;">;</span> 错误报告级别是位字段的叠加，推荐使用 <span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">E_STRICT</span>
<span style="color: #339933;">;</span>    <span style="color: #cc66cc;">1</span>  <span style="color: #009900; font-weight: bold;">E_ERROR</span>             致命的运行时错误
<span style="color: #339933;">;</span>    <span style="color: #cc66cc;">2</span>  <span style="color: #009900; font-weight: bold;">E_WARNING</span>           运行时警告<span style="color: #009900;">&#40;</span>非致命性错误<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>    <span style="color: #cc66cc;">4</span>  <span style="color: #009900; font-weight: bold;">E_PARSE</span>             编译时解析错误
<span style="color: #339933;">;</span>    <span style="color: #cc66cc;">8</span>  <span style="color: #009900; font-weight: bold;">E_NOTICE</span>            运行时提醒<span style="color: #009900;">&#40;</span>经常是bug，也可能是有意的<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>   <span style="color: #cc66cc;">16</span>  <span style="color: #009900; font-weight: bold;">E_CORE_ERROR</span>        PHP启动时初始化过程中的致命错误
<span style="color: #339933;">;</span>   <span style="color: #cc66cc;">32</span>  <span style="color: #009900; font-weight: bold;">E_CORE_WARNING</span>      PHP启动时初始化过程中的警告<span style="color: #009900;">&#40;</span>非致命性错<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>   <span style="color: #cc66cc;">64</span>  <span style="color: #009900; font-weight: bold;">E_COMPILE_ERROR</span>     编译时致命性错
<span style="color: #339933;">;</span>  <span style="color: #cc66cc;">128</span>  <span style="color: #009900; font-weight: bold;">E_COMPILE_WARNING</span>   编译时警告<span style="color: #009900;">&#40;</span>非致命性错<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>  <span style="color: #cc66cc;">256</span>  <span style="color: #009900; font-weight: bold;">E_USER_ERROR</span>        用户自定义的致命错误
<span style="color: #339933;">;</span>  <span style="color: #cc66cc;">512</span>  <span style="color: #009900; font-weight: bold;">E_USER_WARNING</span>      用户自定义的警告<span style="color: #009900;">&#40;</span>非致命性错误<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1024</span>  <span style="color: #009900; font-weight: bold;">E_USER_NOTICE</span>       用户自定义的提醒<span style="color: #009900;">&#40;</span>经常是bug，也可能是有意的<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2048</span>  <span style="color: #009900; font-weight: bold;">E_STRICT</span>            编码标准化警告<span style="color: #009900;">&#40;</span>建议如何修改以向前兼容<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">4096</span>  E_RECOVERABLE_ERROR 接近致命的运行时错误，若未被捕获则视同<span style="color: #009900; font-weight: bold;">E_ERROR</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">6143</span>  <span style="color: #009900; font-weight: bold;">E_ALL</span>               除<span style="color: #009900; font-weight: bold;">E_STRICT</span>外的所有错误<span style="color: #009900;">&#40;</span>PHP6中为<span style="color: #cc66cc;">8191</span><span style="color: #339933;">,</span>即包含所有<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> 也可以用<span style="color: #cc66cc;">2147483647</span><span style="color: #009900;">&#40;</span>所有二进制位全为<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>打开现在或将来可能出现的各种错误
&nbsp;
track_errors <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在变量<span style="color: #000088;">$php_errormsg</span>中保存最近一个错误或警告消息。
&nbsp;
display_errors <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否将错误信息作为输出的一部分显示。
<span style="color: #339933;">;</span> 在最终发布的web站点上，强烈建议你关掉这个特性，并使用错误日志代替<span style="color: #009900;">&#40;</span>参看下面<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 在最终发布的web站点打开这个特性可能暴露一些安全信息，
<span style="color: #339933;">;</span> 例如你的web服务上的文件路径、数据库规划或别的信息。
&nbsp;
display_startup_errors <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否显示PHP启动时的错误。
<span style="color: #339933;">;</span> 即使display_errors指令被打开，关闭此参数也将不显示PHP启动时的错误。
<span style="color: #339933;">;</span> 建议你关掉这个特性，除非你必须要用于调试中。
&nbsp;
report_memleaks <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否报告内存泄漏。这个参数只在以调试方式编译的PHP中起作用，
<span style="color: #339933;">;</span> 并且必须在<a href="http://www.php.net/error_reporting"><span style="color: #990000;">error_reporting</span></a>指令中包含 <span style="color: #009900; font-weight: bold;">E_WARNING</span>
&nbsp;
report_zend_debug <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 尚无说明文档
&nbsp;
html_errors <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否在出错信息中使用HTML标记。
<span style="color: #339933;">;</span> 注意<span style="color: #339933;">:</span> 不要在发布的站点上使用这个特性！
&nbsp;
docref_root <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;http://localhost/phpmanual/&quot;</span>
docref_ext <span style="color: #339933;">=</span>   <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;.html&quot;</span>
<span style="color: #339933;">;</span> 如果打开了html_errors指令，PHP将会在出错信息上显示超连接，
<span style="color: #339933;">;</span> 直接链接到一个说明这个错误或者导致这个错误的函数的页面。
<span style="color: #339933;">;</span> 你可以从http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.php.net/docs.php下载php手册，</span>
<span style="color: #339933;">;</span> 并将docref_root指令指向你本地的手册所在的URL目录。
<span style="color: #339933;">;</span> 你还必须设置docref_ext指令来指定文件的扩展名<span style="color: #009900;">&#40;</span>必须含有<span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 注意<span style="color: #339933;">:</span> 不要在发布的站点上使用这个特性。
&nbsp;
error_prepend_string <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;&amp;lt;font color=#f00&amp;gt;&quot;</span>
<span style="color: #339933;">;</span> 用于错误信息前输出的字符串
error_append_string <span style="color: #339933;">=</span>   <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;&amp;lt;/font&amp;gt;&quot;</span>
<span style="color: #339933;">;</span> 用于错误信息后输出的字符串
&nbsp;
xmlrpc_errors <span style="color: #339933;">=</span> Off
xmlrpc_error_number <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 尚无文档
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Logging<span style="color: #009900;">&#93;</span>
&nbsp;
<a href="http://www.php.net/define_syslog_variables"><span style="color: #990000;">define_syslog_variables</span></a> <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否定义各种系统日志变量，如：<span style="color: #000088;">$LOG_PID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$LOG_CRON</span> 等等。
<span style="color: #339933;">;</span> 关掉它以提高效率的好主意。
<span style="color: #339933;">;</span> 你可以在运行时调用<a href="http://www.php.net/define_syslog_variables"><span style="color: #990000;">define_syslog_variables</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数来定义这些变量。
&nbsp;
<a href="http://www.php.net/error_log"><span style="color: #990000;">error_log</span></a> <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 将错误日志记录到哪个文件中。该文件必须对Web服务器用户可写。
<span style="color: #339933;">;</span> <a href="http://www.php.net/syslog"><span style="color: #990000;">syslog</span></a> 表示记录到系统日志中<span style="color: #009900;">&#40;</span>NT下的事件日志<span style="color: #339933;">,</span> Unix下的<a href="http://www.php.net/syslog"><span style="color: #990000;">syslog</span></a><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> 如果此处未设置任何值，则错误将被记录到Web服务器的错误日志中。
&nbsp;
log_errors <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在日志文件里记录错误，具体在哪里记录取决于<a href="http://www.php.net/error_log"><span style="color: #990000;">error_log</span></a>指令。
<span style="color: #339933;">;</span> 强烈建议你在最终发布的web站点时使用日志记录错误而不是直接输出，
<span style="color: #339933;">;</span> 这样可以让你既知道那里出了问题，又不会暴露敏感信息。
&nbsp;
log_errors_max_len <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1024</span>
<span style="color: #339933;">;</span> 设置错误日志中附加的与错误信息相关联的错误源的最大长度。
<span style="color: #339933;">;</span> 这里设置的值对显示的和记录的错误以及<span style="color: #000088;">$php_errormsg</span>都有效。
<span style="color: #339933;">;</span> 设为 <span style="color: #cc66cc;">0</span> 可以允许无限长度。
&nbsp;
ignore_repeated_errors <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 记录错误日志时是否忽略重复的错误信息。
<span style="color: #339933;">;</span> 错误信息必须出现在同一文件的同一行才被被视为重复。
&nbsp;
ignore_repeated_source <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在忽略重复的错误信息时忽略重复的错误源。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span><a href="http://www.php.net/mail"><span style="color: #990000;">Mail</span></a><span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 要使邮件函数可用，PHP必须在编译时能够访问sendmail程序。
<span style="color: #339933;">;</span> 如果使用其它的邮件程序，如qmail或postfix，确保使用了相应的sendmail包装。
<span style="color: #339933;">;</span> PHP首先会在系统的PATH环境变量中搜索sendmail，接着按以下顺序搜索：
<span style="color: #339933;">;</span> <span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>bin<span style="color: #339933;">:/</span>usr<span style="color: #339933;">/</span>sbin<span style="color: #339933;">:/</span>usr<span style="color: #339933;">/</span>etc<span style="color: #339933;">:/</span>etc<span style="color: #339933;">:/</span>usr<span style="color: #339933;">/</span>ucblib<span style="color: #339933;">:/</span>usr<span style="color: #339933;">/</span>lib
<span style="color: #339933;">;</span> 强烈建议在PATH中能够找到sendmail。
<span style="color: #339933;">;</span> 另外，编译PHP的用户必须能够访问sendmail程序。
&nbsp;
SMTP <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;localhost&quot;</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/mail"><span style="color: #990000;">mail</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数中用来发送邮件的SMTP服务器的主机名称或者IP地址。仅用于win32。
&nbsp;
smtp_port <span style="color: #339933;">=</span> <span style="color: #cc66cc;">25</span>
<span style="color: #339933;">;</span> SMTP服务器的端口号。仅用于win32。
&nbsp;
sendmail_from <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 发送邮件时使用的<span style="color: #0000ff;">&quot;From:&quot;</span>头中的邮件地址。仅用于win32
<span style="color: #339933;">;</span> 该选项还同时设置了<span style="color: #0000ff;">&quot;Return-Path:&quot;</span>头。
&nbsp;
sendmail_path <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;-t -i&quot;</span>
<span style="color: #339933;">;</span> 仅用于unix，也可支持参数<span style="color: #009900;">&#40;</span>默认的是<span style="color: #0000ff;">'sendmail -t -i'</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> sendmail程序的路径，通常为<span style="color: #0000ff;">&quot;/usr/sbin/sendmail或/usr/lib/sendmail&quot;</span>。
<span style="color: #339933;">;</span> configure脚本会尝试找到该程序并设定为默认值，但是如果失败的话，可以在这里设定。
<span style="color: #339933;">;</span> 不使用sendmail的系统应将此指令设定为sendmail替代程序<span style="color: #009900;">&#40;</span>如果有的话<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 例如，Qmail用户通常可以设为<span style="color: #0000ff;">&quot;/var/qmail/bin/sendmail&quot;</span>或<span style="color: #0000ff;">&quot;/var/qmail/bin/qmail-inject&quot;</span>。
<span style="color: #339933;">;</span> qmail<span style="color: #339933;">-</span>inject 不需要任何选项就能正确处理邮件。
&nbsp;
<a href="http://www.php.net/mail"><span style="color: #990000;">mail</span></a><span style="color: #339933;">.</span>force_extra_parameters <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 作为额外的参数传递给sendmail库的强制指定的参数附加值。
<span style="color: #339933;">;</span> 这些参数总是会替换掉<a href="http://www.php.net/mail"><span style="color: #990000;">mail</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>的第<span style="color: #cc66cc;">5</span>个参数，即使在安全模式下也是如此。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>ResourceLimit<span style="color: #009900;">&#93;</span>
&nbsp;
default_socket_timeout <span style="color: #339933;">=</span> <span style="color: #cc66cc;">60</span>
<span style="color: #339933;">;</span> 默认socket超时<span style="color: #009900;">&#40;</span>秒<span style="color: #009900;">&#41;</span>
&nbsp;
max_execution_time <span style="color: #339933;">=</span> <span style="color: #cc66cc;">30</span>
<span style="color: #339933;">;</span> 每个脚本最大允许执行时间<span style="color: #009900;">&#40;</span>秒<span style="color: #009900;">&#41;</span>，<span style="color: #cc66cc;">0</span> 表示没有限制。
<span style="color: #339933;">;</span> 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
<span style="color: #339933;">;</span> 该指令仅影响脚本本身的运行时间，任何其它花费在脚本运行之外的时间，
<span style="color: #339933;">;</span> 如用<a href="http://www.php.net/system"><span style="color: #990000;">system</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><a href="http://www.php.net/sleep"><span style="color: #990000;">sleep</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数的使用、数据库查询、文件上传等，都不包括在内。
<span style="color: #339933;">;</span> 在安全模式下，你不能用<a href="http://www.php.net/ini_set"><span style="color: #990000;">ini_set</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>在运行时改变这个设置。
&nbsp;
memory_limit <span style="color: #339933;">=</span> 128M
<span style="color: #339933;">;</span> 一个脚本所能够申请到的最大内存字节数<span style="color: #009900;">&#40;</span>可以使用K和M作为单位<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 这有助于防止劣质脚本消耗完服务器上的所有内存。
<span style="color: #339933;">;</span> 要能够使用该指令必须在编译时使用<span style="color: #0000ff;">&quot;--enable-memory-limit&quot;</span>配置选项。
<span style="color: #339933;">;</span> 如果要取消内存限制，则必须将其设为 <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> 。
<span style="color: #339933;">;</span> 设置了该指令后，<a href="http://www.php.net/memory_get_usage"><span style="color: #990000;">memory_get_usage</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数将变为可用。
&nbsp;
max_input_time <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>
<span style="color: #339933;">;</span> 每个脚本解析输入数据<span style="color: #009900;">&#40;</span>POST<span style="color: #339933;">,</span> GET<span style="color: #339933;">,</span> upload<span style="color: #009900;">&#41;</span>的最大允许时间<span style="color: #009900;">&#40;</span>秒<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> 表示不限制。
&nbsp;
max_input_nesting_level <span style="color: #339933;">=</span> <span style="color: #cc66cc;">64</span>
<span style="color: #339933;">;</span> 输入变量的最大嵌套深度<span style="color: #009900;">&#40;</span>尚无更多解释文档<span style="color: #009900;">&#41;</span>
&nbsp;
post_max_size <span style="color: #339933;">=</span> 8M
<span style="color: #339933;">;</span> 允许的POST数据最大字节长度。此设定也影响到文件上传。
<span style="color: #339933;">;</span> 如果POST数据超出限制，那么<span style="color: #000088;">$_POST</span>和<span style="color: #000088;">$_FILES</span>将会为空。
<span style="color: #339933;">;</span> 要上传大文件，该值必须大于upload_max_filesize指令的值。
<span style="color: #339933;">;</span> 如果启用了内存限制，那么该值应当小于memory_limit指令的值。
&nbsp;
realpath_cache_size <span style="color: #339933;">=</span> 16K
<span style="color: #339933;">;</span> 指定PHP使用的<a href="http://www.php.net/realpath"><span style="color: #990000;">realpath</span></a><span style="color: #009900;">&#40;</span>规范化的绝对路径名<span style="color: #009900;">&#41;</span>缓冲区大小。
<span style="color: #339933;">;</span> 在PHP打开大量文件的系统上应当增大该值以提高性能。
&nbsp;
realpath_cache_ttl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">120</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/realpath"><span style="color: #990000;">realpath</span></a>缓冲区中信息的有效期<span style="color: #009900;">&#40;</span>秒<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 对文件很少变动的系统，可以增大该值以提高性能。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>FileUpLoad<span style="color: #009900;">&#93;</span>
&nbsp;
file_uploads <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否允许HTTP文件上传。
<span style="color: #339933;">;</span> 参见upload_max_filesize<span style="color: #339933;">,</span> upload_tmp_dir<span style="color: #339933;">,</span> post_max_size指令
&nbsp;
upload_max_filesize <span style="color: #339933;">=</span> 2M
<span style="color: #339933;">;</span> 允许上传的文件的最大尺寸。
&nbsp;
upload_tmp_dir <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 文件上传时存放文件的临时目录<span style="color: #009900;">&#40;</span>必须是PHP进程用户可写的目录<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果未指定则PHP使用系统默认的临时目录。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>MagicQuotes<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> PHP6删除了下列指令，相当于全部为 Off
&nbsp;
magic_quotes_gpc <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否对输入的GET<span style="color: #339933;">/</span>POST<span style="color: #339933;">/</span>Cookie数据使用自动字符串转义<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'  &quot;  \  NULL )。
; 这里的设置将自动影响 $_GEST $_POST $_COOKIE 数组的值。
; 若将本指令与magic_quotes_sybase指令同时打开，则仅将单引号('</span><span style="color: #009900;">&#41;</span>转义为<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span>，
<span style="color: #339933;">;</span> 其它特殊字符将不被转义，即<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;  \  NULL )将保持原样！！
; 建议关闭此特性，并使用自定义的过滤函数。
&nbsp;
magic_quotes_runtime = Off
; 是否对运行时从外部资源产生的数据使用自动字符串转义( '  &quot;</span>  \  <span style="color: #009900; font-weight: bold;">NULL</span> <span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 若打开本指令，则大多数函数从外部资源<span style="color: #009900;">&#40;</span>数据库<span style="color: #339933;">,</span>文本文件等<span style="color: #009900;">&#41;</span>返回数据都将被转义。
<span style="color: #339933;">;</span> 例如：用SQL查询得到的数据，用<a href="http://www.php.net/exec"><span style="color: #990000;">exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数得到的数据，等等
<span style="color: #339933;">;</span> 若将本指令与magic_quotes_sybase指令同时打开，则仅将单引号<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">')转义为('</span><span style="color: #0000ff;">')，
; 其它特殊字符将不被转义，即( &quot;  \  NULL )将保持原样！！
; 建议关闭此特性，并视具体情况使用自定义的过滤函数。
&nbsp;
magic_quotes_sybase = Off
; 是否采用Sybase形式的自动字符串转义(用 '</span><span style="color: #0000ff;">' 表示 '</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>HighLight<span style="color: #009900;">&#93;</span>
&nbsp;
highlight<span style="color: #339933;">.</span>bg <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#FFFFFF&quot;</span>
highlight<span style="color: #339933;">.</span>comment <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#FF8000&quot;</span>
highlight<span style="color: #339933;">.</span><span style="color: #b1b100;">default</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#0000BB&quot;</span>
highlight<span style="color: #339933;">.</span>html <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#000000&quot;</span>
highlight<span style="color: #339933;">.</span>keyword <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#007700&quot;</span>
highlight<span style="color: #339933;">.</span>string <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#DD0000&quot;</span>
<span style="color: #339933;">;</span> 语法高亮模式的色彩<span style="color: #009900;">&#40;</span>通常用于显示 <span style="color: #339933;">.</span>phps 文件<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 只要能被<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>font color<span style="color: #339933;">=</span>xxx<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>接受的东西就能正常工作。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Langue<span style="color: #009900;">&#93;</span>
&nbsp;
short_open_tag <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否允许使用<span style="color: #0000ff;">&quot;&amp;lt;? ?&amp;gt;&quot;</span>短标识。否则必须使用<span style="color: #0000ff;">&quot;&amp;lt;?php ?&amp;gt;&quot;</span>长标识。
<span style="color: #339933;">;</span> 除非你的php程序仅在受控环境下运行，且只供自己使用，否则请不要使用短标记。
<span style="color: #339933;">;</span> 如果要和XML结合使用PHP，可以选择关闭此选项以方便直接嵌入<span style="color: #0000ff;">&quot;&amp;lt;?xml ... ?&amp;gt;&quot;</span>，
<span style="color: #339933;">;</span> 不然你必须用PHP来输出：<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>? <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&amp;lt;?xml version=&quot;1.0&quot;'</span><span style="color: #339933;">;</span> ?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 本指令也会影响到缩写形式<span style="color: #0000ff;">&quot;&amp;lt;?=&quot;</span>，它和<span style="color: #0000ff;">&quot;&amp;lt;? echo&quot;</span>等价，要使用它也必须打开短标记。
&nbsp;
asp_tags <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否允许ASP风格的标记<span style="color: #0000ff;">&quot;&amp;lt;% %&amp;gt;&quot;</span>，这也会影响到缩写形式<span style="color: #0000ff;">&quot;&amp;lt;%=&quot;</span>。
<span style="color: #339933;">;</span> PHP6中将删除此指令
&nbsp;
arg_separator<span style="color: #339933;">.</span>output <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&amp;amp;&quot;</span>
<span style="color: #339933;">;</span> PHP所产生的URL中用来分隔参数的分隔符。
<span style="color: #339933;">;</span> 另外还可以用<span style="color: #0000ff;">&quot;&amp;amp;amp;&quot;</span>或<span style="color: #0000ff;">&quot;,&quot;</span>等等。
&nbsp;
arg_separator<span style="color: #339933;">.</span>input <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&amp;amp;&quot;</span>
<span style="color: #339933;">;</span> PHP解析URL中的变量时使用的分隔符列表。
<span style="color: #339933;">;</span> 字符串中的每一个字符都会被当作分割符。
<span style="color: #339933;">;</span> 另外还可以用<span style="color: #0000ff;">&quot;,&amp;amp;&quot;</span>等等。
&nbsp;
allow_call_time_pass_reference <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否强迫在函数调用时按引用传递参数<span style="color: #009900;">&#40;</span>每次使用此特性都会收到一条警告<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> php反对这种做法，并在PHP6里删除了该指令<span style="color: #009900;">&#40;</span>相当于设为Off<span style="color: #009900;">&#41;</span>，因为它影响到了代码的整洁。
<span style="color: #339933;">;</span> 鼓励的方法是在函数声明里明确指定哪些参数按引用传递。
<span style="color: #339933;">;</span> 我们鼓励你关闭这一选项，以保证你的脚本在将来版本的语言里仍能正常工作。
&nbsp;
auto_globals_jit <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否仅在使用到<span style="color: #000088;">$_SERVER</span>和<span style="color: #000088;">$_ENV</span>变量时才创建<span style="color: #009900;">&#40;</span>而不是在脚本一启动时就自动创建<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果并未在脚本中使用这两个数组，打开该指令将会获得性能上的提升。
<span style="color: #339933;">;</span> 要想该指令生效，必须关闭register_globals和register_long_arrays指令。
&nbsp;
auto_prepend_file <span style="color: #339933;">=</span>
auto_append_file  <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 指定在主文件之前<span style="color: #339933;">/</span>后自动解析的文件名。为空表示禁用该特性。
<span style="color: #339933;">;</span> 该文件就像调用了<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数被包含进来一样，因此会使用include_path指令的值。
<span style="color: #339933;">;</span> 注意：如果脚本通过<a href="http://www.php.net/exit"><span style="color: #990000;">exit</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>终止，那么自动后缀将不会发生。
&nbsp;
variables_order <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;EGPCS&quot;</span>
<span style="color: #339933;">;</span> PHP注册 Environment<span style="color: #339933;">,</span> GET<span style="color: #339933;">,</span> POST<span style="color: #339933;">,</span> Cookie<span style="color: #339933;">,</span> Server 变量的顺序。
<span style="color: #339933;">;</span> 分别用 E<span style="color: #339933;">,</span> G<span style="color: #339933;">,</span> P<span style="color: #339933;">,</span> C<span style="color: #339933;">,</span> S 表示，按从左到右注册，新值覆盖旧值。
<span style="color: #339933;">;</span> 举例说，设为<span style="color: #0000ff;">&quot;GP&quot;</span>将会导致用POST变量覆盖同名的GET变量，
<span style="color: #339933;">;</span> 并完全忽略 Environment<span style="color: #339933;">,</span> Cookie<span style="color: #339933;">,</span> Server 变量。
<span style="color: #339933;">;</span> 推荐使用<span style="color: #0000ff;">&quot;GPC&quot;</span>或<span style="color: #0000ff;">&quot;GPCS&quot;</span>，并使用<a href="http://www.php.net/getenv"><span style="color: #990000;">getenv</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数访问环境变量。
&nbsp;
register_globals <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否将 E<span style="color: #339933;">,</span> G<span style="color: #339933;">,</span> P<span style="color: #339933;">,</span> C<span style="color: #339933;">,</span> S 变量注册为全局变量。
<span style="color: #339933;">;</span> 打开该指令可能会导致严重的安全问题，除非你的脚本经过非常仔细的检查。
<span style="color: #339933;">;</span> 推荐使用预定义的超全局变量：<span style="color: #000088;">$_ENV</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_GET</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_POST</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_COOKIE</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span>
<span style="color: #339933;">;</span> 该指令受variables_order指令的影响。
<span style="color: #339933;">;</span> PHP6中已经删除此指令。
&nbsp;
register_argc_argv <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否声明<span style="color: #000088;">$argv</span>和<span style="color: #000088;">$argc</span>全局变量<span style="color: #009900;">&#40;</span>包含用GET方法的信息<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 建议不要使用这两个变量，并关掉该指令以提高性能。
&nbsp;
register_long_arrays <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否启用旧式的长式数组<span style="color: #009900;">&#40;</span>HTTP_<span style="color: #339933;">*</span>_VARS<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 鼓励使用短式的预定义超全局数组，并关闭该特性以获得更好的性能。
<span style="color: #339933;">;</span> PHP6中已经删除此指令。
&nbsp;
always_populate_raw_post_data <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否总是生成<span style="color: #000088;">$HTTP_RAW_POST_DATA</span>变量<span style="color: #009900;">&#40;</span>原始POST数据<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 否则，此变量仅在遇到不能识别的MIME类型的数据时才产生。
<span style="color: #339933;">;</span> 不过，访问原始POST数据的更好方法是 php<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//input 。</span>
<span style="color: #339933;">;</span> <span style="color: #000088;">$HTTP_RAW_POST_DATA</span>对于enctype<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;multipart/form-data&quot;</span>的表单数据不可用。
&nbsp;
unserialize_callback_func <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 如果解序列化处理器需要实例化一个未定义的类，
<span style="color: #339933;">;</span> 这里指定的回调函数将以该未定义类的名字作为参数被<a href="http://www.php.net/unserialize"><span style="color: #990000;">unserialize</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>调用，
<span style="color: #339933;">;</span> 以免得到不完整的<span style="color: #0000ff;">&quot;__PHP_Incomplete_Class&quot;</span>对象。
<span style="color: #339933;">;</span> 如果这里没有指定函数，或指定的函数不包含<span style="color: #009900;">&#40;</span>或实现<span style="color: #009900;">&#41;</span>那个未定义的类，将会显示警告信息。
<span style="color: #339933;">;</span> 所以仅在确实需要实现这样的回调函数时才设置该指令。
<span style="color: #339933;">;</span> 若要禁止这个特性，只需置空即可。
&nbsp;
y2k_compliance <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否强制打开<span style="color: #cc66cc;">2000</span>年适应<span style="color: #009900;">&#40;</span>可能在非Y2K适应的浏览器中导致问题<span style="color: #009900;">&#41;</span>。
&nbsp;
zend<span style="color: #339933;">.</span>ze1_compatibility_mode <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用兼容Zend引擎I<span style="color: #009900;">&#40;</span>PHP <span style="color: #cc66cc;">4</span><span style="color: #339933;">.</span>x<span style="color: #009900;">&#41;</span>的模式。PHP6中将删除该指令<span style="color: #009900;">&#40;</span>相当于Off<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 这将影响对象的复制、构造<span style="color: #009900;">&#40;</span>无属性的对象会产生<span style="color: #009900; font-weight: bold;">FALSE</span>或<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>、比较。
<span style="color: #339933;">;</span> 兼容模式下，对象将按值传递，而不是默认的按引用传递。
&nbsp;
precision <span style="color: #339933;">=</span> <span style="color: #cc66cc;">14</span>
<span style="color: #339933;">;</span> 浮点型数据显示的有效位数。
&nbsp;
serialize_precision <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span>
<span style="color: #339933;">;</span> 将浮点型和双精度型数据序列化存储时的精度<span style="color: #009900;">&#40;</span>有效位数<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>OutputControl<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 输出控制函数很有用，特别是在已经输出了信息之后再发送HTTP头的情况下。
<span style="color: #339933;">;</span> 输出控制函数不会作用于<a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>或<a href="http://www.php.net/setcookie"><span style="color: #990000;">setcookie</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>等函数发送的HTTP头，
<span style="color: #339933;">;</span> 而只会影响类似于<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数输出的信息和嵌入在PHP代码之间的信息。
&nbsp;
implicit_flush <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否要求PHP输出层在每个输出块之后自动刷新数据。
<span style="color: #339933;">;</span> 这等效于在每个 <span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>、<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>、HTML块 之后自动调用<a href="http://www.php.net/flush"><span style="color: #990000;">flush</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数。
<span style="color: #339933;">;</span> 打开这个选项对程序执行的性能有严重的影响，通常只推荐在调试时使用。
<span style="color: #339933;">;</span> 在CLI SAPI的执行模式下，该指令默认为 On 。
&nbsp;
output_buffering <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 输出缓冲区大小<span style="color: #009900;">&#40;</span>字节<span style="color: #009900;">&#41;</span>。建议值为<span style="color: #cc66cc;">4096</span>~<span style="color: #cc66cc;">8192</span>。
<span style="color: #339933;">;</span> 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头<span style="color: #009900;">&#40;</span>包括cookies<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 其代价是输出层减慢一点点速度。
<span style="color: #339933;">;</span> 设置输出缓冲可以减少写入，有时还能减少网络数据包的发送。
<span style="color: #339933;">;</span> 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本。
&nbsp;
output_handler <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 将所有脚本的输出重定向到一个输出处理函数。
<span style="color: #339933;">;</span> 比如，重定向到<a href="http://www.php.net/mb_output_handler"><span style="color: #990000;">mb_output_handler</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数时，字符编码将被透明地转换为指定的编码。
<span style="color: #339933;">;</span> 一旦你在这里指定了输出处理程序，输出缓冲将被自动打开<span style="color: #009900;">&#40;</span>output_buffering<span style="color: #339933;">=</span><span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span> 此处仅能使用PHP内置的函数，自定义函数应在脚本中使用<a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>指定。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> 可移植脚本不能依赖该指令，而应使用<a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数明确指定输出处理函数。
<span style="color: #339933;">;</span>        使用这个指令可能会导致某些你不熟悉的脚本出错。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span> 你不能同时使用<span style="color: #0000ff;">&quot;mb_output_handler&quot;</span>和<span style="color: #0000ff;">&quot;ob_iconv_handler&quot;</span>两个输出处理函数。
<span style="color: #339933;">;</span>        你也不能同时使用<span style="color: #0000ff;">&quot;ob_gzhandler&quot;</span>输出处理函数和zlib<span style="color: #339933;">.</span>output_compression指令。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span> 如果使用zlib<span style="color: #339933;">.</span>output_handler指令开启zlib输出压缩，该指令必须为空。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Directory<span style="color: #009900;">&#93;</span>
&nbsp;
include_path <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;.:/path/to/php/pear&quot;</span>
<span style="color: #339933;">;</span> 指定一组目录用于<span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> fopen_with_path<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数寻找文件。
<span style="color: #339933;">;</span> 格式和系统的PATH环境变量类似<span style="color: #009900;">&#40;</span>UNIX下用冒号分隔，Windows下用分号分隔<span style="color: #009900;">&#41;</span>：
<span style="color: #339933;">;</span> UNIX<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;/path1:/path2&quot;</span>
<span style="color: #339933;">;</span> Windows<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;\path1;\path2&quot;</span>
<span style="color: #339933;">;</span> 在包含路径中使用<span style="color: #0000ff;">'.'</span>可以允许相对路径，它代表当前目录。
&nbsp;
user_dir <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 告诉php在使用 <span style="color: #339933;">/</span>~username 打开脚本时到哪个目录下去找，仅在非空时有效。
<span style="color: #339933;">;</span> 也就是在用户目录之下使用PHP文件的基本目录名，例如：<span style="color: #0000ff;">&quot;public_html&quot;</span>
&nbsp;
extension_dir <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/path/to/php&quot;</span>
<span style="color: #339933;">;</span> 存放扩展库<span style="color: #009900;">&#40;</span>模块<span style="color: #009900;">&#41;</span>的目录，也就是PHP用来寻找动态扩展模块的目录。
<span style="color: #339933;">;</span> Windows下默认为<span style="color: #0000ff;">&quot;C:/php5&quot;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>HTTP<span style="color: #009900;">&#93;</span>
&nbsp;
default_mimetype <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;text/html&quot;</span>
default_charset <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;gb2312&quot;</span>
<span style="color: #339933;">;</span> PHP默认会自动输出<span style="color: #0000ff;">&quot;Content-Type: text/html&quot;</span> HTTP头。
<span style="color: #339933;">;</span> 如果将default_charset指令设为<span style="color: #0000ff;">&quot;gb2312&quot;</span>，
<span style="color: #339933;">;</span> 那么将会自动输出<span style="color: #0000ff;">&quot;Content-Type: text/html; charset=gb2312&quot;</span>。
<span style="color: #339933;">;</span> PHP6反对使用default_charset指令，而推荐使用unicode<span style="color: #339933;">.</span>output_encoding指令。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Unicode<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> PHP6基于ICU<span style="color: #009900;">&#40;</span>International Components <span style="color: #b1b100;">for</span> Unicode<span style="color: #009900;">&#41;</span>库提供了全面的Unicode支持。
<span style="color: #339933;">;</span> 编译时需要使用<span style="color: #339933;">--</span>with<span style="color: #339933;">-</span>icu<span style="color: #339933;">-</span><a href="http://www.php.net/dir"><span style="color: #990000;">dir</span></a><span style="color: #339933;">=&amp;</span>lt<span style="color: #339933;">;</span>dir<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>指定ICU头文件和库的安装位置。
<span style="color: #339933;">;</span> 除detect_unicode外，其他都是PHP6新增的指令。
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> PHP6的信息目前还很缺乏，所以此部分内容可能不完整甚至有错误。
&nbsp;
detect_unicode <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 指示Zend引擎是否通过检查脚本的BOM<span style="color: #009900;">&#40;</span>字节顺序标记<span style="color: #009900;">&#41;</span>来检测脚本是否包含多字节字符。
<span style="color: #339933;">;</span> 建议关闭。PHP6已经取消了此指令而用unicode<span style="color: #339933;">.</span>script_encoding指令来代替其功能。
&nbsp;
unicode<span style="color: #339933;">.</span>semantics <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否启用Unicode支持。
<span style="color: #339933;">;</span> 如果打开此指令，那么PHP将变成一个完全的Unicode环境，比如：
<span style="color: #339933;">;</span> 所有字符串和从HTTP接受的变量都将变成Unicode，所有PHP标识符也都可以使用Unicode字符。
<span style="color: #339933;">;</span> 而且，PHP内部将使用Unicode字符串并负责对外围非Unicode字符进行自动转换，
<span style="color: #339933;">;</span> 比如：HTTP输入输出、流、文件系统操作等等，甚至连php<span style="color: #339933;">.</span>ini自身都将按照UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>编码来解析。
<span style="color: #339933;">;</span> 开启这个指令后，你必须明确指定二进制字符串。PHP将不对二进制字符串的内容做任何假定，
<span style="color: #339933;">;</span> 因此你的程序必须保证能够恰当的处理二进制字符串。
<span style="color: #339933;">;</span> 如果关闭这个指令，PHP的行为将和以前的行为完全相同：
<span style="color: #339933;">;</span> 字符串不会变成Unicode，文件和二进制字符串也将向后兼容，php<span style="color: #339933;">.</span>ini也将按照<span style="color: #0000ff;">&quot;as-is&quot;</span>风格解析。
<span style="color: #339933;">;</span> 不管是否打开此指令，所有的函数和操作符都透明的支持Unicode字符串。
&nbsp;
unicode<span style="color: #339933;">.</span>fallback_encoding <span style="color: #339933;">=</span> UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>
<span style="color: #339933;">;</span> 为其他所有unicode<span style="color: #339933;">.*</span>_encoding指令设置默认值。
<span style="color: #339933;">;</span> 也就是说如果某个unicode<span style="color: #339933;">.*</span>_encoding指令未明确设置的话，将使用此处设置的值。
&nbsp;
unicode<span style="color: #339933;">.</span>runtime_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 运行时编码指定了PHP引擎内部转换二进制字符串时使用的编码。
<span style="color: #339933;">;</span> 此处的设置对于I<span style="color: #339933;">/</span>O相关操作<span style="color: #009900;">&#40;</span>比如：写入标准输出<span style="color: #339933;">/</span>读取文件系统<span style="color: #339933;">/</span>解码HTTP输入变量<span style="color: #009900;">&#41;</span>没有影响。
<span style="color: #339933;">;</span> PHP也允许你明确的对字符串进行转换：
<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span>binary<span style="color: #009900;">&#41;</span><span style="color: #000088;">$str</span>  <span style="color: #339933;">--</span> 转化为二进制字符串
<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span>unicode<span style="color: #009900;">&#41;</span><span style="color: #000088;">$str</span> <span style="color: #339933;">--</span> 转化为Unicode字符串
<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #000088;">$str</span>  <span style="color: #339933;">--</span> 如果unicode<span style="color: #339933;">.</span>semantics为On则转化为Unicode字符串，否则转化为二进制字符串
<span style="color: #339933;">;</span> 例如，如果该指令的值为iso<span style="color: #339933;">-</span><span style="color: #cc66cc;">8859</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>并且<span style="color: #000088;">$uni</span>是一个Unicode字符串，那么
<span style="color: #339933;">;</span> <span style="color: #000088;">$str</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>binary<span style="color: #009900;">&#41;</span><span style="color: #000088;">$uni</span>
<span style="color: #339933;">;</span> 将等到一个使用iso<span style="color: #339933;">-</span><span style="color: #cc66cc;">8859</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>编码的二进制字符串。
<span style="color: #339933;">;</span> 在连接、比较、传递参数等操作之前PHP会将相关字符串隐含转换为Unicode，然后再进行操作。
<span style="color: #339933;">;</span> 比如在将二进制字符串与Unicode进行连接的时候，
<span style="color: #339933;">;</span> PHP将会使用这里的设置将二进制字符串转换为Unicode字符串，然后再进行操作。
&nbsp;
unicode<span style="color: #339933;">.</span>output_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> PHP输出非二进制字符串使用的编码。
<span style="color: #339933;">;</span> 自动将<span style="color: #0000ff;">'print'</span>和<span style="color: #0000ff;">'echo'</span>之类的输出内容转换为此处设定的编码<span style="color: #009900;">&#40;</span>并不对二进制字符串进行转换<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 当向文件之类的外部资源写入数据的时候，
<span style="color: #339933;">;</span> 你必须依赖于流编码特性或者使用Unicode扩展的函数手动的对数据进行编码。
<span style="color: #339933;">;</span> 在PHP6中反对使用先前的default_charset指令，而推荐使用该指令。
<span style="color: #339933;">;</span> 先前的default_charset指令只是指定了Content<span style="color: #339933;">-</span>Type头中的字符集，而并不对实际的输出做任何转换。
<span style="color: #339933;">;</span> 而在PHP6中，default_charset指令仅在unicode<span style="color: #339933;">.</span>semantics为off的时候才有效。
<span style="color: #339933;">;</span> 设置了该指令后将在Content<span style="color: #339933;">-</span>Type输出头的<span style="color: #0000ff;">'charset'</span>部分填上该指令的值，
<span style="color: #339933;">;</span> 而不管default_charset指令如何设置。
&nbsp;
unicode<span style="color: #339933;">.</span>http_input_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 通过HTTP获取的变量<span style="color: #009900;">&#40;</span>比如<span style="color: #000088;">$_GET</span>和_<span style="color: #000088;">$POST</span><span style="color: #009900;">&#41;</span>内容的编码。
<span style="color: #339933;">;</span> 直到<span style="color: #cc66cc;">2007</span>年<span style="color: #cc66cc;">4</span>月此功能尚在开发中<span style="color: #339933;">....</span>
&nbsp;
unicode<span style="color: #339933;">.</span>filesystem_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 文件系统的目录名和文件名的编码。
<span style="color: #339933;">;</span> 文件系统相关的函数<span style="color: #009900;">&#40;</span>比如<a href="http://www.php.net/opendir"><span style="color: #990000;">opendir</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>将使用这个编码接受和返回文件名和目录名。
<span style="color: #339933;">;</span> 此处的设置必须与文件系统实际使用的编码完全一致。
&nbsp;
unicode<span style="color: #339933;">.</span>script_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> PHP脚本自身的默认编码。
<span style="color: #339933;">;</span> 你可以使用任何ICU支持的编码来写PHP脚本。
<span style="color: #339933;">;</span> 如果你想针对单独的脚本文件设定其编码，可以在该脚本的开头使用
<span style="color: #339933;">;</span>   <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php <span style="color: #000000; font-weight: bold;">declare</span><span style="color: #009900;">&#40;</span>encoding <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Shift-JIS'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> ?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 来指定。注意：必须是第一行开头，全面不要有任何字符<span style="color: #009900;">&#40;</span>包括空白<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 该方法只能影响其所在的脚本，不会影响任何被包含的其他脚本。
&nbsp;
unicode<span style="color: #339933;">.</span><a href="http://www.php.net/stream_encoding"><span style="color: #990000;">stream_encoding</span></a>	<span style="color: #339933;">=</span> UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>
unicode<span style="color: #339933;">.</span>from_error_mode <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span>
unicode<span style="color: #339933;">.</span>from_error_subst_char <span style="color: #339933;">=</span> 3f
<span style="color: #339933;">;</span> 尚无文档
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Misc<span style="color: #009900;">&#93;</span>
&nbsp;
auto_detect_line_endings <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否让PHP自动侦测行结束符<span style="color: #009900;">&#40;</span>EOL<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果的你脚本必须处理Macintosh文件，
<span style="color: #339933;">;</span> 或者你运行在Macintosh上，同时又要处理unix或win32文件，
<span style="color: #339933;">;</span> 打开这个指令可以让PHP自动侦测EOL，以便<a href="http://www.php.net/fgets"><span style="color: #990000;">fgets</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>和<a href="http://www.php.net/file"><span style="color: #990000;">file</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数可以正常工作。
<span style="color: #339933;">;</span> 但同时也会导致在Unix系统下使用回车符<span style="color: #009900;">&#40;</span>CR<span style="color: #009900;">&#41;</span>作为项目分隔符的人遭遇不兼容行为。
<span style="color: #339933;">;</span> 另外，在检测第一行的EOL习惯时会有很小的性能损失。
&nbsp;
browscap <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;c:/windows/system32/inetsrv/browscap.ini&quot;</span>
<span style="color: #339933;">;</span> 只有PWS和IIS需要这个设置
<span style="color: #339933;">;</span> 你可以从http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.garykeith.com/browsers/downloads.asp</span>
<span style="color: #339933;">;</span> 得到一个browscap<span style="color: #339933;">.</span>ini文件。
&nbsp;
<a href="http://www.php.net/ignore_user_abort"><span style="color: #990000;">ignore_user_abort</span></a> <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否即使在用户中止请求后也坚持完成整个请求。
<span style="color: #339933;">;</span> 在执行一个长请求的时候应当考虑打开该它，
<span style="color: #339933;">;</span> 因为长请求可能会导致用户中途中止或浏览器超时。
&nbsp;
user_agent <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;PHP&quot;</span>
<span style="color: #339933;">;</span> 定义<span style="color: #0000ff;">&quot;User-Agent&quot;</span>字符串
&nbsp;
<span style="color: #339933;">;</span>url_rewriter<span style="color: #339933;">.</span>tags <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;a=href,area=href,frame=src,form=,fieldset=&quot;</span>
<span style="color: #339933;">;</span> 虽然此指令属于PHP核心部分，但是却用于Session模块的配置
&nbsp;
<span style="color: #339933;">;</span>extension <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 在PHP启动时加载动态扩展。例如：extension<span style="color: #339933;">=</span>mysqli<span style="color: #339933;">.</span>so
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;=&quot;</span>之后只能使用模块文件的名字，而不能含有路径信息。
<span style="color: #339933;">;</span> 路径信息应当只由extension_dir指令提供。
<span style="color: #339933;">;</span> 主意，在windows上，下列扩展已经内置：
<span style="color: #339933;">;</span> bcmath <span style="color: #339933;">;</span> calendar <span style="color: #339933;">;</span> com_dotnet <span style="color: #339933;">;</span> ctype <span style="color: #339933;">;</span> session <span style="color: #339933;">;</span> filter <span style="color: #339933;">;</span> ftp <span style="color: #339933;">;</span> <a href="http://www.php.net/hash"><span style="color: #990000;">hash</span></a>
<span style="color: #339933;">;</span> <a href="http://www.php.net/iconv"><span style="color: #990000;">iconv</span></a> <span style="color: #339933;">;</span> json <span style="color: #339933;">;</span> odbc <span style="color: #339933;">;</span> pcre <span style="color: #339933;">;</span> Reflection <span style="color: #339933;">;</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a> <span style="color: #339933;">;</span> libxml <span style="color: #339933;">;</span> standard
<span style="color: #339933;">;</span> tokenizer <span style="color: #339933;">;</span> zlib <span style="color: #339933;">;</span> SimpleXML <span style="color: #339933;">;</span> dom <span style="color: #339933;">;</span> SPL <span style="color: #339933;">;</span> wddx <span style="color: #339933;">;</span> xml <span style="color: #339933;">;</span> xmlreader <span style="color: #339933;">;</span> xmlwriter
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>CGI<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 这些指令只有在将PHP运行在CGI模式下的时候才有效
&nbsp;
doc_root <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> PHP的<span style="color: #0000ff;">&quot;CGI根目录&quot;</span>。仅在非空时有效。
<span style="color: #339933;">;</span> 在web服务器的主文档目录<span style="color: #009900;">&#40;</span>比如<span style="color: #0000ff;">&quot;htdocs&quot;</span><span style="color: #009900;">&#41;</span>中放置可执行程序<span style="color: #339933;">/</span>脚本被认为是不安全的，
<span style="color: #339933;">;</span> 比如因为配置错误而将脚本作为普通的html显示。
<span style="color: #339933;">;</span> 因此很多系统管理员都会在主文档目录之外专门设置一个只能通过CGI来访问的目录，
<span style="color: #339933;">;</span> 该目录中的内容只会被解析而不会原样显示出来。
<span style="color: #339933;">;</span> 如果设置了该项，那么PHP就只会解释doc_root目录下的文件，
<span style="color: #339933;">;</span> 并确保目录外的脚本都不会被PHP解释器执行<span style="color: #009900;">&#40;</span>user_dir除外<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果编译PHP时没有指定FORCE_REDIRECT，并且在非IIS服务器上以CGI方式运行，
<span style="color: #339933;">;</span> 则必须设置此指令<span style="color: #009900;">&#40;</span>参见手册中的安全部分<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 替代方案是使用的cgi<span style="color: #339933;">.</span>force_redirect指令。
&nbsp;
cgi<span style="color: #339933;">.</span>discard_path <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 尚无文档<span style="color: #009900;">&#40;</span>PHP6新增指令<span style="color: #009900;">&#41;</span>
&nbsp;
cgi<span style="color: #339933;">.</span>fix_pathinfo <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否为CGI提供真正的 PATH_INFO<span style="color: #339933;">/</span>PATH_TRANSLATED 支持<span style="color: #009900;">&#40;</span>遵守cgi规范<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 先前的行为是将PATH_TRANSLATED设为SCRIPT_FILENAME，而不管PATH_INFO是什么。
<span style="color: #339933;">;</span> 打开此选项将使PHP修正其路径以遵守CGI规范，否则仍将使用旧式的不合规范的行为。
<span style="color: #339933;">;</span> 鼓励你打开此指令，并修正脚本以使用 SCRIPT_FILENAME 代替 PATH_TRANSLATED 。
<span style="color: #339933;">;</span> 有关PATH_INFO的更多信息请参见cgi规范。
&nbsp;
cgi<span style="color: #339933;">.</span>force_redirect <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否打开cgi强制重定向。强烈建议打开它以为CGI方式运行的php提供安全保护。
<span style="color: #339933;">;</span> 你若自己关闭了它，请自己负责后果。
<span style="color: #339933;">;</span> 注意：在IIS<span style="color: #339933;">/</span>OmniHTTPD<span style="color: #339933;">/</span>Xitami上则必须关闭它！
&nbsp;
cgi<span style="color: #339933;">.</span>redirect_status_env <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 如果cgi<span style="color: #339933;">.</span>force_redirect<span style="color: #339933;">=</span>On，并且在Apache与Netscape之外的服务器下运行PHP，
<span style="color: #339933;">;</span> 可能需要设定一个cgi重定向环境变量名，PHP将去寻找它来知道是否可以继续执行下去。
<span style="color: #339933;">;</span> 设置这个变量会导致安全漏洞，请务必在设置前搞清楚自己在做什么。
&nbsp;
cgi<span style="color: #339933;">.</span>rfc2616_headers <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 指定PHP在发送HTTP响应代码时使用何种报头。
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span> 表示发送一个<span style="color: #0000ff;">&quot;Status: &quot;</span>报头，Apache和其它web服务器都支持。
<span style="color: #339933;">;</span> 若设为<span style="color: #cc66cc;">1</span>，则PHP使用RFC2616标准的头。
<span style="color: #339933;">;</span> 除非你知道自己在做什么，否则保持其默认值 <span style="color: #cc66cc;">0</span>
&nbsp;
cgi<span style="color: #339933;">.</span>nph <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 在CGI模式下是否强制对所有请求都发送<span style="color: #0000ff;">&quot;Status: 200&quot;</span>状态码。
&nbsp;
cgi<span style="color: #339933;">.</span>check_shebang_line <span style="color: #339933;">=</span>On
<span style="color: #339933;">;</span> CGI PHP是否检查脚本顶部以 <span style="color: #666666; font-style: italic;">#! 开始的行。
</span><span style="color: #339933;">;</span> 如果脚本想要既能够单独运行又能够在PHP CGI模式下运行，那么这个起始行就是必须的。
<span style="color: #339933;">;</span> 如果打开该指令，那么CGI模式的PHP将跳过这一行。
&nbsp;
fastcgi<span style="color: #339933;">.</span>impersonate <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> IIS中的FastCGI支持模仿客户端安全令牌的能力。
<span style="color: #339933;">;</span> 这使得IIS能够定义运行时所基于的请求的安全上下文。
<span style="color: #339933;">;</span> Apache中的mod_fastcgi不支持此特性<span style="color: #009900;">&#40;</span><span style="color: #208080;">03</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">17</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2002</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> 如果在IIS中运行则设为On，默认为Off。
&nbsp;
fastcgi<span style="color: #339933;">.</span>logging <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否记录通过FastCGI进行的连接。
&nbsp;
<span style="color: #009900;">&#91;</span>PHP<span style="color: #339933;">-</span>Core<span style="color: #339933;">-</span>Weirdy<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 这些选项仅存在于文档中，却不存在于<a href="http://www.php.net/phpinfo"><span style="color: #990000;">phpinfo</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数的输出中
&nbsp;
async_send <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否异步发送。
&nbsp;
from <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;john@doe.com&quot;</span>
<span style="color: #339933;">;</span> 定义匿名ftp的密码<span style="color: #009900;">&#40;</span>一个email地址<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #339933;">;;;;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span>  近核心模块  <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;;;;;;;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>Pcre<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span>Perl兼容正则表达式模块
&nbsp;
pcre<span style="color: #339933;">.</span>backtrack_limit <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100000</span>
<span style="color: #339933;">;</span> PCRE的最大回溯<span style="color: #009900;">&#40;</span>backtracking<span style="color: #009900;">&#41;</span>步数。
&nbsp;
pcre<span style="color: #339933;">.</span>recursion_limit <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100000</span>
<span style="color: #339933;">;</span> PCRE的最大递归<span style="color: #009900;">&#40;</span>recursion<span style="color: #009900;">&#41;</span>深度。
<span style="color: #339933;">;</span> 如果你将该值设的非常高，将可能耗尽进程的栈空间，导致PHP崩溃。
&nbsp;
<span style="color: #009900;">&#91;</span>Session<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 除非使用<a href="http://www.php.net/session_register"><span style="color: #990000;">session_register</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>或<span style="color: #000088;">$_SESSION</span>注册了一个变量。
<span style="color: #339933;">;</span> 否则不管是否使用了<a href="http://www.php.net/session_start"><span style="color: #990000;">session_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>，都不会自动添加任何session记录。
<span style="color: #339933;">;</span> 包括resource变量或有循环引用的对象包含指向自身的引用的对象，不能保存在会话中。
<span style="color: #339933;">;</span> register_globals指令会影响到会话变量的存储和恢复。
&nbsp;
session<span style="color: #339933;">.</span>save_handler <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;files&quot;</span>
<span style="color: #339933;">;</span> 存储和检索与会话关联的数据的处理器名字。默认为文件<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;files&quot;</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果想要使用自定义的处理器<span style="color: #009900;">&#40;</span>如基于数据库的处理器<span style="color: #009900;">&#41;</span>，可用<span style="color: #0000ff;">&quot;user&quot;</span>。
<span style="color: #339933;">;</span> 设为<span style="color: #0000ff;">&quot;memcache&quot;</span>则可以使用memcache作为会话处理器<span style="color: #009900;">&#40;</span>需要指定<span style="color: #0000ff;">&quot;--enable-memcache-session&quot;</span>编译选项<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 还有一个使用PostgreSQL的处理器：http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//sourceforge.net/projects/phpform-ext/</span>
&nbsp;
session<span style="color: #339933;">.</span>save_path <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/tmp&quot;</span>
<span style="color: #339933;">;</span> 传递给存储处理器的参数。对于files处理器，此值是创建会话数据文件的路径。
<span style="color: #339933;">;</span> Windows下默认为临时文件夹路径。
<span style="color: #339933;">;</span> 你可以使用<span style="color: #0000ff;">&quot;N;[MODE;]/path&quot;</span>这样模式定义该路径<span style="color: #009900;">&#40;</span>N是一个整数<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> N表示使用N层深度的子目录，而不是将所有数据文件都保存在一个目录下。
<span style="color: #339933;">;</span> <span style="color: #009900;">&#91;</span>MODE<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span>可选，必须使用<span style="color: #cc66cc;">8</span>进制数，默认<span style="color: #0000ff;">&quot;600&quot;</span>，表示文件的访问权限。
<span style="color: #339933;">;</span> 这是一个提高大量会话性能的好主意。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;N;[MODE;]/path&quot;</span>两边的双引号不能省略。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>MODE<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span>并不会改写进程的<a href="http://www.php.net/umask"><span style="color: #990000;">umask</span></a>。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span> php不会自动创建这些文件夹结构。请使用ext<span style="color: #339933;">/</span>session目录下的mod_files<span style="color: #339933;">.</span>sh脚本创建。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span> 如果该文件夹可以被不安全的用户访问<span style="color: #009900;">&#40;</span>比如默认的<span style="color: #0000ff;">&quot;/tmp&quot;</span><span style="color: #009900;">&#41;</span>，那么将会带来安全漏洞。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">4</span><span style="color: #339933;">:</span> 当N<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span>时自动垃圾回收将会失效，具体参见下面有关垃圾搜集的部分。
<span style="color: #339933;">;</span> <span style="color: #009900;">&#91;</span>安全提示<span style="color: #009900;">&#93;</span>建议针对每个不同的虚拟主机分别设置各自不同的目录。
<span style="color: #339933;">;</span>
<span style="color: #339933;">;</span> 对于<span style="color: #0000ff;">&quot;memcache&quot;</span>处理器，需要定义一个逗号分隔的服务器URL用来存储会话数据。
<span style="color: #339933;">;</span> 比如：<span style="color: #0000ff;">&quot;tcp://host1:11211, tcp://host2:11211&quot;</span>
<span style="color: #339933;">;</span> 每个URL都可以包含传递给那个服务器的参数，可用的参数与 Memcache<span style="color: #339933;">::</span><span style="color: #004000;">addServer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> 方法相同。
<span style="color: #339933;">;</span> 例如：<span style="color: #0000ff;">&quot;tcp://host1:11211?persistent=1&amp;amp;weight=1&amp;amp;timeout=1&amp;amp;retry_interval=15&quot;</span>
&nbsp;
session<span style="color: #339933;">.</span>name <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;PHPSESSID&quot;</span>
<span style="color: #339933;">;</span>用在cookie里的会话ID标识名，只能包含字母和数字。
&nbsp;
session<span style="color: #339933;">.</span>auto_start <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 在客户访问任何页面时都自动初始化会话，默认禁止。
<span style="color: #339933;">;</span> 因为类定义必须在会话启动之前被载入，所以若打开这个选项，你就不能在会话中存放对象。
&nbsp;
session<span style="color: #339933;">.</span>serialize_handler <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;php&quot;</span>
<span style="color: #339933;">;</span> 用来序列化<span style="color: #339933;">/</span>解序列化数据的处理器，php是标准序列化<span style="color: #339933;">/</span>解序列化处理器。
<span style="color: #339933;">;</span> 另外还可以使用<span style="color: #0000ff;">&quot;php_binary&quot;</span>。当启用了WDDX支持以后，将只能使用<span style="color: #0000ff;">&quot;wddx&quot;</span>。
&nbsp;
session<span style="color: #339933;">.</span>gc_probability <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>
session<span style="color: #339933;">.</span>gc_divisor <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span>
<span style="color: #339933;">;</span> 定义在每次初始化会话时，启动垃圾回收程序的概率。
<span style="color: #339933;">;</span> 这个收集概率计算公式如下：session<span style="color: #339933;">.</span>gc_probability<span style="color: #339933;">/</span>session<span style="color: #339933;">.</span>gc_divisor
<span style="color: #339933;">;</span> 对会话页面访问越频繁，概率就应当越小。建议值为<span style="color: #cc66cc;">1</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">1000</span>~<span style="color: #cc66cc;">5000</span>。
&nbsp;
session<span style="color: #339933;">.</span>gc_maxlifetime <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1440</span>
<span style="color: #339933;">;</span> 超过此参数所指的秒数后，保存的数据将被视为<span style="color: #0000ff;">'垃圾'</span>并由垃圾回收程序清理。
<span style="color: #339933;">;</span> 判断标准是最后访问数据的时间<span style="color: #009900;">&#40;</span>对于FAT文件系统是最后刷新数据的时间<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果多个脚本共享同一个session<span style="color: #339933;">.</span>save_path目录但session<span style="color: #339933;">.</span>gc_maxlifetime不同，
<span style="color: #339933;">;</span> 那么将以所有session<span style="color: #339933;">.</span>gc_maxlifetime指令中的最小值为准。
<span style="color: #339933;">;</span> 如果使用多层子目录来存储数据文件，垃圾回收程序不会自动启动。
<span style="color: #339933;">;</span> 你必须使用一个你自己编写的shell脚本、cron项或者其他办法来执行垃圾搜集。
<span style="color: #339933;">;</span> 比如，下面的脚本相当于设置了<span style="color: #0000ff;">&quot;session.gc_maxlifetime=1440&quot;</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">24</span>分钟<span style="color: #009900;">&#41;</span>：
<span style="color: #339933;">;</span> cd <span style="color: #339933;">/</span>path<span style="color: #339933;">/</span>to<span style="color: #339933;">/</span>sessions<span style="color: #339933;">;</span> find <span style="color: #339933;">-</span>cmin <span style="color: #339933;">+</span><span style="color: #cc66cc;">24</span> <span style="color: #339933;">|</span> xargs rm
&nbsp;
session<span style="color: #339933;">.</span>referer_check <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 如果请求头中的<span style="color: #0000ff;">&quot;Referer&quot;</span>字段不包含此处指定的字符串则会话ID将被视为无效。
<span style="color: #339933;">;</span> 注意：如果请求头中根本不存在<span style="color: #0000ff;">&quot;Referer&quot;</span>字段的话，会话ID将仍将被视为有效。
<span style="color: #339933;">;</span> 默认为空，即不做检查<span style="color: #009900;">&#40;</span>全部视为有效<span style="color: #009900;">&#41;</span>。
&nbsp;
session<span style="color: #339933;">.</span>entropy_file <span style="color: #339933;">=</span>  <span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;/dev/urandom&quot;</span>
<span style="color: #339933;">;</span> 附加的用于创建会话ID的外部高熵值资源<span style="color: #009900;">&#40;</span>文件<span style="color: #009900;">&#41;</span>，
<span style="color: #339933;">;</span> 例如UNIX系统上的<span style="color: #0000ff;">&quot;/dev/random&quot;</span>或<span style="color: #0000ff;">&quot;/dev/urandom&quot;</span>
&nbsp;
session<span style="color: #339933;">.</span>entropy_length <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 从高熵值资源中读取的字节数<span style="color: #009900;">&#40;</span>建议值：<span style="color: #cc66cc;">16</span><span style="color: #009900;">&#41;</span>。
&nbsp;
session<span style="color: #339933;">.</span>use_cookies <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否使用cookie在客户端保存会话ID
&nbsp;
session<span style="color: #339933;">.</span>use_only_cookies <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否仅仅使用cookie在客户端保存会话ID。PHP6的默认值为On。
<span style="color: #339933;">;</span> 打开这个选项可以避免使用URL传递会话带来的安全问题。
<span style="color: #339933;">;</span> 但是禁用Cookie的客户端将使会话无法工作。
&nbsp;
session<span style="color: #339933;">.</span>cookie_lifetime <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 传递会话ID的Cookie有效期<span style="color: #009900;">&#40;</span>秒<span style="color: #009900;">&#41;</span>，<span style="color: #cc66cc;">0</span> 表示仅在浏览器打开期间有效。
<span style="color: #339933;">;</span> <span style="color: #009900;">&#91;</span>提示<span style="color: #009900;">&#93;</span>如果你不能保证服务器时间和客户端时间严格一致请不要改变此默认值！
&nbsp;
session<span style="color: #339933;">.</span>cookie_path <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/&quot;</span>
<span style="color: #339933;">;</span> 传递会话ID的Cookie作用路径。
&nbsp;
session<span style="color: #339933;">.</span>cookie_domain <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 传递会话ID的Cookie作用域。
<span style="color: #339933;">;</span> 默认为空表示表示根据cookie规范生成的主机名。
&nbsp;
session<span style="color: #339933;">.</span>cookie_secure <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否仅仅通过安全连接<span style="color: #009900;">&#40;</span>https<span style="color: #009900;">&#41;</span>发送cookie。
&nbsp;
session<span style="color: #339933;">.</span>cookie_httponly <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在cookie中添加httpOnly标志<span style="color: #009900;">&#40;</span>仅允许HTTP协议访问<span style="color: #009900;">&#41;</span>，
<span style="color: #339933;">;</span> 这将导致客户端脚本<span style="color: #009900;">&#40;</span>JavaScript等<span style="color: #009900;">&#41;</span>无法访问该cookie。
<span style="color: #339933;">;</span> 打开该指令可以有效预防通过XSS攻击劫持会话ID。
&nbsp;
session<span style="color: #339933;">.</span>cache_limiter <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;nocache&quot;</span>
<span style="color: #339933;">;</span> 设为<span style="color: #009900;">&#123;</span>nocache<span style="color: #339933;">|</span>private<span style="color: #339933;">|</span>public<span style="color: #009900;">&#125;</span>以指定会话页面的缓存控制模式，
<span style="color: #339933;">;</span> 或者设为空以阻止在http应答头中发送禁用缓存的命令。
&nbsp;
session<span style="color: #339933;">.</span>cache_expire <span style="color: #339933;">=</span> <span style="color: #cc66cc;">180</span>
<span style="color: #339933;">;</span> 指定会话页面在客户端cache中的有效期限<span style="color: #009900;">&#40;</span>分钟<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> session<span style="color: #339933;">.</span>cache_limiter<span style="color: #339933;">=</span>nocache时，此处设置无效。
&nbsp;
session<span style="color: #339933;">.</span>use_trans_sid <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用明码在URL中显示SID<span style="color: #009900;">&#40;</span>会话ID<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 默认是禁止的，因为它会给你的用户带来安全危险：
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span> 用户可能将包含有效sid的URL通过email<span style="color: #339933;">/</span>irc<span style="color: #339933;">/</span>QQ<span style="color: #339933;">/</span>MSN<span style="color: #339933;">...</span>途径告诉给其他人。
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">-</span> 包含有效sid的URL可能会被保存在公用电脑上。
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">-</span> 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面。
<span style="color: #339933;">;</span> 基于URL的会话管理总是比基于Cookie的会话管理有更多的风险，所以应当禁用。
&nbsp;
session<span style="color: #339933;">.</span>bug_compat_42 <span style="color: #339933;">=</span> On
session<span style="color: #339933;">.</span>bug_compat_warn <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> PHP4<span style="color: #339933;">.</span>2之前的版本有一个未注明的<span style="color: #0000ff;">&quot;BUG&quot;</span>：
<span style="color: #339933;">;</span> 即使在register_globals<span style="color: #339933;">=</span>Off的情况下也允许初始化全局session变量，
<span style="color: #339933;">;</span> 如果你在PHP4<span style="color: #339933;">.</span>3之后的版本中使用这个特性，会显示一条警告。
<span style="color: #339933;">;</span> 建议关闭该<span style="color: #0000ff;">&quot;BUG&quot;</span>并显示警告。PHP6删除了这两个指令，相当于全部设为Off。
&nbsp;
session<span style="color: #339933;">.</span>hash_function <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 生成SID的散列算法。SHA<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>的安全性更高一些
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span> <a href="http://www.php.net/md5"><span style="color: #990000;">MD5</span></a>   <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">128</span> bits<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> SHA<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span> bits<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> 建议使用SHA<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>。
&nbsp;
session<span style="color: #339933;">.</span>hash_bits_per_character <span style="color: #339933;">=</span> <span style="color: #cc66cc;">4</span>
<span style="color: #339933;">;</span> 指定在SID字符串中的每个字符内保存多少bit，
<span style="color: #339933;">;</span> 这些二进制数是<a href="http://www.php.net/hash"><span style="color: #990000;">hash</span></a>函数的运算结果。
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span> a<span style="color: #339933;">-</span>f
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span> a<span style="color: #339933;">-</span>v
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span> a<span style="color: #339933;">-</span>z<span style="color: #339933;">,</span> A<span style="color: #339933;">-</span>Z<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;,&quot;</span>
<span style="color: #339933;">;</span> 建议值为 <span style="color: #cc66cc;">5</span>
&nbsp;
url_rewriter<span style="color: #339933;">.</span>tags <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;a=href,area=href,frame=src,form=,fieldset=&quot;</span>
<span style="color: #339933;">;</span> 此指令属于PHP核心部分，并不属于Session模块。
<span style="color: #339933;">;</span> 指定重写哪些HTML标签来包含SID<span style="color: #009900;">&#40;</span>仅当session<span style="color: #339933;">.</span>use_trans_sid<span style="color: #339933;">=</span>On时有效<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> form和fieldset比较特殊：
<span style="color: #339933;">;</span> 如果你包含他们，URL重写器将添加一个隐藏的<span style="color: #0000ff;">&quot;&amp;lt;input&amp;gt;&quot;</span>，它包含了本应当额外追加到URL上的信息。
<span style="color: #339933;">;</span> 如果要符合XHTML标准，请去掉form项并在表单字段前后加上<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>fieldset<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>标记。
<span style="color: #339933;">;</span> 注意：所有合法的项都需要一个等号<span style="color: #009900;">&#40;</span>即使后面没有值<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 推荐值为<span style="color: #0000ff;">&quot;a=href,area=href,frame=src,input=src,form=fakeentry&quot;</span>。
&nbsp;
session<span style="color: #339933;">.</span>encode_sources <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;globals&quot;</span>
<span style="color: #339933;">;</span> PHP6中有争议的指令，尚未决定是否采用该指令。也尚无相关文档。
&nbsp;
<span style="color: #339933;">;;;;;;;;;;;;;;;;</span>
<span style="color: #339933;">;;</span>  其他模块  <span style="color: #339933;">;;</span>
<span style="color: #339933;">;;;;;;;;;;;;;;;;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>APC<span style="color: #339933;">-</span>3<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>16<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> Alternative PHP Cache 用于缓存和优化PHP中间代码
<span style="color: #339933;">;</span> 编译<span style="color: #339933;">/</span>安装<span style="color: #339933;">/</span>配置信息都位于源码树下的 INSTALL 文件中
&nbsp;
apc<span style="color: #339933;">.</span>enabled <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否启用APC，如果APC被静态编译进PHP又想禁用它，这是唯一的办法。
&nbsp;
apc<span style="color: #339933;">.</span>enable_cli <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否为CLI版本启用APC功能，仅用于测试和调试目的才打开此指令。
&nbsp;
apc<span style="color: #339933;">.</span>cache_by_default <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否默认对所有文件启用缓冲。
<span style="color: #339933;">;</span> 若设为Off并与以加号开头的apc<span style="color: #339933;">.</span>filters指令一起用，则文件仅在匹配过滤器时才被缓存。
&nbsp;
apc<span style="color: #339933;">.</span>file_update_protection <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span>
<span style="color: #339933;">;</span> 当你在一个运行中的服务器上修改文件时，你应当执行原子操作。
<span style="color: #339933;">;</span> 也就是先写进一个临时文件，然后将该文件重命名<span style="color: #009900;">&#40;</span>mv<span style="color: #009900;">&#41;</span>到最终的名字。
<span style="color: #339933;">;</span> 文本编辑器以及 cp<span style="color: #339933;">,</span> tar 等程序却并不是这样操作的，从而导致有可能缓冲了残缺的文件。
<span style="color: #339933;">;</span> 默认值 <span style="color: #cc66cc;">2</span> 表示在访问文件时如果发现修改时间距离访问时间小于 <span style="color: #cc66cc;">2</span> 秒则不做缓冲。
<span style="color: #339933;">;</span> 那个不幸的访问者可能得到残缺的内容，但是这种坏影响却不会通过缓存扩大化。
<span style="color: #339933;">;</span> 如果你能确保所有的更新操作都是原子操作，那么可以用 <span style="color: #cc66cc;">0</span> 关闭此特性。
<span style="color: #339933;">;</span> 如果你的系统由于大量的IO操作导致更新缓慢，你就需要增大此值。
&nbsp;
apc<span style="color: #339933;">.</span>filters <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 一个以逗号分隔的POSIX扩展正则表达式列表。
<span style="color: #339933;">;</span> 如果源文件名与任意一个模式匹配，则该文件不被缓存。
<span style="color: #339933;">;</span> 注意，用来匹配的文件名是传递给<span style="color: #b1b100;">include</span><span style="color: #339933;">/</span><span style="color: #b1b100;">require</span>的文件名，而不是绝对路径。
<span style="color: #339933;">;</span> 如果正则表达式的第一个字符是<span style="color: #0000ff;">&quot;+&quot;</span>则意味着任何匹配表达式的文件会被缓存，
<span style="color: #339933;">;</span> 如果第一个字符是<span style="color: #0000ff;">&quot;-&quot;</span>则任何匹配项都不会被缓存。<span style="color: #0000ff;">&quot;-&quot;</span>是默认值，可以省略掉。
&nbsp;
apc<span style="color: #339933;">.</span>ttl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 缓存条目在缓冲区中允许逗留的秒数。<span style="color: #cc66cc;">0</span> 表示永不超时。建议值为<span style="color: #cc66cc;">7200</span>~<span style="color: #cc66cc;">86400</span>。
<span style="color: #339933;">;</span> 设为 <span style="color: #cc66cc;">0</span> 意味着缓冲区有可能被旧的缓存条目填满，从而导致无法缓存新条目。
&nbsp;
apc<span style="color: #339933;">.</span>user_ttl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 类似于apc<span style="color: #339933;">.</span>ttl，只是针对每个用户而言，建议值为<span style="color: #cc66cc;">7200</span>~<span style="color: #cc66cc;">86400</span>。
<span style="color: #339933;">;</span> 设为 <span style="color: #cc66cc;">0</span> 意味着缓冲区有可能被旧的缓存条目填满，从而导致无法缓存新条目。
&nbsp;
apc<span style="color: #339933;">.</span>gc_ttl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3600</span>
<span style="color: #339933;">;</span> 缓存条目在垃圾回收表中能够存在的秒数。
<span style="color: #339933;">;</span> 此值提供了一个安全措施，即使一个服务器进程在执行缓存的源文件时崩溃，
<span style="color: #339933;">;</span> 而且该源文件已经被修改，为旧版本分配的内存也不会被回收，直到达到此TTL值为止。
<span style="color: #339933;">;</span> 设为零将禁用此特性。
&nbsp;
apc<span style="color: #339933;">.</span>include_once_override <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 优化<span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>和<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数以避免执行额外的系统调用。
&nbsp;
apc<span style="color: #339933;">.</span>max_file_size <span style="color: #339933;">=</span> 1M
<span style="color: #339933;">;</span> 禁止大于此尺寸的文件被缓存。
&nbsp;
apc<span style="color: #339933;">.</span>mmap_file_mask <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 如果使用<span style="color: #339933;">--</span>enable<span style="color: #339933;">-</span>mmap<span style="color: #009900;">&#40;</span>默认启用<span style="color: #009900;">&#41;</span>为APC编译了MMAP支持，
<span style="color: #339933;">;</span> 这里的值就是传递给mmap模块的mktemp风格的文件掩码<span style="color: #009900;">&#40;</span>建议值为<span style="color: #0000ff;">&quot;/tmp/apc.XXXXXX&quot;</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 该掩码用于决定内存映射区域是否要被file<span style="color: #339933;">-</span>backed或者shared memory backed。
<span style="color: #339933;">;</span> 对于直接的file<span style="color: #339933;">-</span>backed内存映射，要设置成<span style="color: #0000ff;">&quot;/tmp/apc.XXXXXX&quot;</span>的样子<span style="color: #009900;">&#40;</span>恰好<span style="color: #cc66cc;">6</span>个X<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 要使用POSIX风格的shm_open<span style="color: #339933;">/</span>mmap就需要设置成<span style="color: #0000ff;">&quot;/apc.shm.XXXXXX&quot;</span>的样子。
<span style="color: #339933;">;</span> 你还可以设为<span style="color: #0000ff;">&quot;/dev/zero&quot;</span>来为匿名映射的内存使用内核的<span style="color: #0000ff;">&quot;/dev/zero&quot;</span>接口。
<span style="color: #339933;">;</span> 不定义此指令则表示强制使用匿名映射。
&nbsp;
apc<span style="color: #339933;">.</span>num_files_hint <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1000</span>
<span style="color: #339933;">;</span> Web服务器上可能被包含或被请求的不同脚本源代码文件的大致数量<span style="color: #009900;">&#40;</span>建议值为<span style="color: #cc66cc;">1024</span>~<span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果你不能确定，则设为 <span style="color: #cc66cc;">0</span> ；此设定主要用于拥有数千个源文件的站点。
&nbsp;
apc<span style="color: #339933;">.</span>optimization <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 优化级别<span style="color: #009900;">&#40;</span>建议值为 <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> 。反对使用该指令。将来可能会被删除。
<span style="color: #339933;">;</span> 正整数值表示启用优化器，值越高则使用越激进的优化。
<span style="color: #339933;">;</span> 更高的值可能有非常有限的速度提升，但目前尚在试验中。
&nbsp;
apc<span style="color: #339933;">.</span>report_autofilter <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否记录所有由于early<span style="color: #339933;">/</span>late binding原因而自动未被缓存的脚本。
&nbsp;
apc<span style="color: #339933;">.</span>shm_segments <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>
<span style="color: #339933;">;</span> 为编译器缓冲区分配的共享内存块数量<span style="color: #009900;">&#40;</span>建议值为<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果APC耗尽了共享内存，并且已将apc<span style="color: #339933;">.</span>shm_size指令设为系统允许的最大值，可以尝试增大此值。
<span style="color: #339933;">;</span> 在mmap模式下设置为 <span style="color: #cc66cc;">1</span> 之外的其它值是无效的，因为经过mmap的共享内存段的大小是没有限制的。
&nbsp;
apc<span style="color: #339933;">.</span>shm_size <span style="color: #339933;">=</span> <span style="color: #cc66cc;">30</span>
<span style="color: #339933;">;</span> 每个共享内存块的大小<span style="color: #009900;">&#40;</span>以MB为单位，建议值为<span style="color: #cc66cc;">128</span>~<span style="color: #cc66cc;">256</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 有些系统<span style="color: #009900;">&#40;</span>包括大多数BSD变种<span style="color: #009900;">&#41;</span>默认的共享内存块尺寸很小。
&nbsp;
apc<span style="color: #339933;">.</span>slam_defense <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 在非常繁忙的服务器上，无论是启动服务还是修改文件，
<span style="color: #339933;">;</span> 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。
<span style="color: #339933;">;</span> 这个指令用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率。
<span style="color: #339933;">;</span> 比如设为<span style="color: #cc66cc;">75</span>表示在遇到未被缓存的文件时有<span style="color: #cc66cc;">75</span><span style="color: #339933;">%</span>的概率不进行缓存，从而减少碰撞几率。
<span style="color: #339933;">;</span> 反对使用该指令，鼓励设为 <span style="color: #cc66cc;">0</span> 来禁用这个特性。建议该用apc<span style="color: #339933;">.</span>write_lock指令。
&nbsp;
apc<span style="color: #339933;">.</span><a href="http://www.php.net/stat"><span style="color: #990000;">stat</span></a> <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否启用脚本更新检查。
<span style="color: #339933;">;</span> 改变这个指令值要非常小心。
<span style="color: #339933;">;</span> 默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新，
<span style="color: #339933;">;</span> 如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。
<span style="color: #339933;">;</span> 如果设为 Off 则表示不进行检查，从而使性能得到大幅提高。
<span style="color: #339933;">;</span> 但是为了使更新的内容生效，你必须重启Web服务器。
<span style="color: #339933;">;</span> 这个指令对于<span style="color: #b1b100;">include</span><span style="color: #339933;">/</span><span style="color: #b1b100;">require</span>的文件同样有效。但是需要注意的是，
<span style="color: #339933;">;</span> 如果你使用的是相对路径，APC就必须在每一次<span style="color: #b1b100;">include</span><span style="color: #339933;">/</span><span style="color: #b1b100;">require</span>时都进行检查以定位文件。
<span style="color: #339933;">;</span> 而使用绝对路径则可以跳过检查，所以鼓励你使用绝对路径进行<span style="color: #b1b100;">include</span><span style="color: #339933;">/</span><span style="color: #b1b100;">require</span>操作。
&nbsp;
apc<span style="color: #339933;">.</span>user_entries_hint <span style="color: #339933;">=</span> <span style="color: #cc66cc;">4096</span>
<span style="color: #339933;">;</span> 类似于num_files_hint指令，只是针对每个不同用户而言。
<span style="color: #339933;">;</span> 如果你不能确定，则设为 <span style="color: #cc66cc;">0</span> 。
&nbsp;
apc<span style="color: #339933;">.</span>write_lock <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否启用写入锁。
<span style="color: #339933;">;</span> 在非常繁忙的服务器上，无论是启动服务还是修改文件，
<span style="color: #339933;">;</span> 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。
<span style="color: #339933;">;</span> 启用该指令可以避免竞争条件的出现。
&nbsp;
apc<span style="color: #339933;">.</span>rfc1867 <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 打开该指令后，对于每个恰好在<a href="http://www.php.net/file"><span style="color: #990000;">file</span></a>字段之前含有APC_UPLOAD_PROGRESS字段的上传文件，
<span style="color: #339933;">;</span> APC都将自动创建一个upload_<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>key<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>的用户缓存条目<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>key<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>就是APC_UPLOAD_PROGRESS字段值<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 需要注意的是，文件上传跟踪在这里并不是线程安全的，
<span style="color: #339933;">;</span> 所以如果老文件尚未上载完毕且新文件已经开始上载，那么将丢失对老文件的跟踪。
&nbsp;
apc<span style="color: #339933;">.</span>rfc1867_prefix <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;upload_&quot;</span>
<span style="color: #339933;">;</span> 用于rfc1867上传文件的缓冲项条目名称前缀
&nbsp;
apc<span style="color: #339933;">.</span>rfc1867_name <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;APC_UPLOAD_PROGRESS&quot;</span>
<span style="color: #339933;">;</span> 需要由APC处理的上传文件的rfc1867隐含表单项名称
&nbsp;
apc<span style="color: #339933;">.</span>rfc1867_freq <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 用户rfc1867上传文件缓存项的更新频率。
<span style="color: #339933;">;</span> 取值可以是总文件大小的百分比，或者以<span style="color: #0000ff;">'K'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'M'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'G'</span>结尾的绝对尺寸。
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span> 表示尽可能快的更新，不过这样可能会导致运行速度下降。
&nbsp;
apc<span style="color: #339933;">.</span>localcache <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用非锁定本地进程shadow<span style="color: #339933;">-</span>cache ，它可以减少了向缓冲区写入时锁之间的竞争。
&nbsp;
apc<span style="color: #339933;">.</span>localcache<span style="color: #339933;">.</span>size <span style="color: #339933;">=</span> <span style="color: #cc66cc;">512</span>
<span style="color: #339933;">;</span> 本地进程的shadow<span style="color: #339933;">-</span>cache，应当设为一个足够大的值，大约相当于num_files_hint的一半。
&nbsp;
apc<span style="color: #339933;">.</span>stat_ctime <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 尚无文档
&nbsp;
<span style="color: #009900;">&#91;</span>bcmath<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 为任意精度数学计算提供了二进制计算器<span style="color: #009900;">&#40;</span>Binary Calculator<span style="color: #009900;">&#41;</span>，
<span style="color: #339933;">;</span> 它支持任意大小和精度的数字，以字符串形式描述。
&nbsp;
bcmath<span style="color: #339933;">.</span>scale <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 用于所有bcmath函数的<span style="color: #cc66cc;">10</span>十进制数的个数
&nbsp;
<span style="color: #009900;">&#91;</span>GD<span style="color: #009900;">&#93;</span>
&nbsp;
gd<span style="color: #339933;">.</span>jpeg_ignore_warning <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否忽略jpeg解码器的警告信息<span style="color: #009900;">&#40;</span>比如无法识别图片格式<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 有image<span style="color: #339933;">/</span>jpeg与image<span style="color: #339933;">/</span>pjpeg两种MIME类型，GD库只能识别前一种传统格式。
<span style="color: #339933;">;</span> 参见：http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//twpug.net/modules/newbb/viewtopic.php?topic_id=1867&amp;amp;forum=14</span>
<span style="color: #339933;">;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//bugs.php.net/bug.php?id=29878</span>
<span style="color: #339933;">;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.faqs.org/faqs/jpeg-faq/part1/section-11.html</span>
&nbsp;
<span style="color: #009900;">&#91;</span>Filter<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 对来源不可靠的数据进行确认和过滤，本扩展模块是实验性的。
&nbsp;
filter<span style="color: #339933;">.</span><span style="color: #b1b100;">default</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;unsafe_raw&quot;</span>
<span style="color: #339933;">;</span> 使用指定的过滤器过滤<span style="color: #000088;">$_GET</span><span style="color: #339933;">,</span><span style="color: #000088;">$_POST</span><span style="color: #339933;">,</span><span style="color: #000088;">$_COOKIE</span><span style="color: #339933;">,</span><span style="color: #000088;">$_REQUEST</span>数据，
<span style="color: #339933;">;</span> 原始数据可以通过input_get<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数访问。
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;unsafe_raw&quot;</span>表示不做任何过滤。
&nbsp;
filter<span style="color: #339933;">.</span>default_flags <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> filter_data<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数的默认标志。
&nbsp;
<span style="color: #009900;">&#91;</span>mbstring<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span>多字节字符串模块支持
&nbsp;
mbstring<span style="color: #339933;">.</span>language <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;neutral&quot;</span>
<span style="color: #339933;">;</span> 默认的NLS<span style="color: #009900;">&#40;</span>本地语言设置<span style="color: #009900;">&#41;</span>，可设置值如下：
<span style="color: #339933;">;</span> 默认值<span style="color: #0000ff;">&quot;neutral&quot;</span>表示中立，相当于未知。
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;zh-cn&quot;</span>或<span style="color: #0000ff;">&quot;Simplified Chinese&quot;</span>表示简体中文
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;zh-tw&quot;</span>或<span style="color: #0000ff;">&quot;Traditional Chinese&quot;</span>表示繁体中文
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;uni&quot;</span>或<span style="color: #0000ff;">&quot;universal&quot;</span>表示Unicode
<span style="color: #339933;">;</span> 该指令自动定义了随后的mbstring<span style="color: #339933;">.</span>internal_encoding指令默认值，
<span style="color: #339933;">;</span> 并且mbstring<span style="color: #339933;">.</span>internal_encoding指令必须放置在该指令之后。
&nbsp;
mbstring<span style="color: #339933;">.</span>internal_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 本指令必须放置在mbstring<span style="color: #339933;">.</span>language指令之后。
<span style="color: #339933;">;</span> 默认的内部编码，未设置时取决于mbstring<span style="color: #339933;">.</span>language指令的值：
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;neutral&quot;</span> 对应 <span style="color: #0000ff;">&quot;ISO-8859-1&quot;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;zh-cn&quot;</span>   对应 <span style="color: #0000ff;">&quot;EUC-CN&quot;</span> <span style="color: #009900;">&#40;</span>等价于<span style="color: #0000ff;">&quot;GB2312&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;zh-tw&quot;</span>   对应 <span style="color: #0000ff;">&quot;EUC-TW&quot;</span> <span style="color: #009900;">&#40;</span>等价于<span style="color: #0000ff;">&quot;BIG5&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;uni&quot;</span>     对应 <span style="color: #0000ff;">&quot;UTF-8&quot;</span>
<span style="color: #339933;">;</span> 提醒：对于简体中文还可以强制设置为<span style="color: #0000ff;">&quot;CP936&quot;</span> <span style="color: #009900;">&#40;</span>等价于<span style="color: #0000ff;">&quot;GBK&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> 注意：可能 SJIS<span style="color: #339933;">,</span> BIG5<span style="color: #339933;">,</span> GBK 不适合作为内部编码，不过<span style="color: #0000ff;">&quot;GB2312&quot;</span>肯定没问题。
<span style="color: #339933;">;</span> 建议手动强制指定
&nbsp;
mbstring<span style="color: #339933;">.</span>encoding_translation <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否对进入的HTTP请求按照mbstring<span style="color: #339933;">.</span>internal_encoding指令进行透明的编码转换，
<span style="color: #339933;">;</span> 也就是自动检测输入字符的编码并将其透明的转化为内部编码。
<span style="color: #339933;">;</span> 可移植的库或者程序千万不要依赖于自动编码转换。
&nbsp;
mbstring<span style="color: #339933;">.</span>http_input <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;pass&quot;</span>
<span style="color: #339933;">;</span> 默认的HTTP输入编码，<span style="color: #0000ff;">&quot;pass&quot;</span>表示跳过<span style="color: #009900;">&#40;</span>不做转换<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;aotu&quot;</span>的含义与mbstring<span style="color: #339933;">.</span>detect_order指令中的解释一样。
<span style="color: #339933;">;</span> 可以设置为一个单独的值，也可以设置为一个逗号分隔的列表。
&nbsp;
mbstring<span style="color: #339933;">.</span>http_output <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;pass&quot;</span>
<span style="color: #339933;">;</span> 默认的HTTP输出编码，<span style="color: #0000ff;">&quot;pass&quot;</span>表示跳过<span style="color: #009900;">&#40;</span>不做转换<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;aotu&quot;</span>的含义与mbstring<span style="color: #339933;">.</span>detect_order指令中的解释一样。
<span style="color: #339933;">;</span> 可以设置为一个单独的值，也可以设置为一个逗号分隔的列表。
<span style="color: #339933;">;</span> 必须将output_handler指令设置为<span style="color: #0000ff;">&quot;mb_output_handler&quot;</span>才可以。
&nbsp;
mbstring<span style="color: #339933;">.</span>detect_order <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 默认的编码检测顺序，<span style="color: #0000ff;">&quot;pass&quot;</span>表示跳过<span style="color: #009900;">&#40;</span>不做转换<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 默认值<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;auto&quot;</span><span style="color: #009900;">&#41;</span>随mbstring<span style="color: #339933;">.</span>language指令的不同而变化：
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;neutral&quot;</span>和<span style="color: #0000ff;">&quot;universal&quot;</span> 对应 <span style="color: #0000ff;">&quot;ASCII, UTF-8&quot;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;Simplified Chinese&quot;</span>   对应 <span style="color: #0000ff;">&quot;ASCII, UTF-8, EUC-CN, CP936&quot;</span>
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;Traditional Chinese&quot;</span>  对应 <span style="color: #0000ff;">&quot;ASCII, UTF-8, EUC-TW, BIG-5&quot;</span>
<span style="color: #339933;">;</span> 建议在可控环境下手动强制指定一个单一值
&nbsp;
mbstring<span style="color: #339933;">.</span>func_overload <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #339933;">;</span> 自动使用 mb_<span style="color: #339933;">*</span> 函数重载相应的单字节字符串函数。
<span style="color: #339933;">;</span> 比如：<a href="http://www.php.net/mail"><span style="color: #990000;">mail</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/ereg"><span style="color: #990000;">ereg</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> 将被自动替换为<a href="http://www.php.net/mb_send_mail"><span style="color: #990000;">mb_send_mail</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/mb_ereg"><span style="color: #990000;">mb_ereg</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> 可用 <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span> 进行位组合。比如<span style="color: #cc66cc;">7</span>表示替换所有。具体替换说明如下：
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span> 无替换
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> <a href="http://www.php.net/mail"><span style="color: #990000;">mail</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_send_mail"><span style="color: #990000;">mb_send_mail</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_strlen"><span style="color: #990000;">mb_strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_substr"><span style="color: #990000;">mb_substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>    <a href="http://www.php.net/strpos"><span style="color: #990000;">strpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_strpos"><span style="color: #990000;">mb_strpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span> <a href="http://www.php.net/strrpos"><span style="color: #990000;">strrpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_strrpos"><span style="color: #990000;">mb_strrpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>    <a href="http://www.php.net/strtolower"><span style="color: #990000;">strtolower</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_strtolower"><span style="color: #990000;">mb_strtolower</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span> <a href="http://www.php.net/strtoupper"><span style="color: #990000;">strtoupper</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_strtoupper"><span style="color: #990000;">mb_strtoupper</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>    <a href="http://www.php.net/substr_count"><span style="color: #990000;">substr_count</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_substr_count"><span style="color: #990000;">mb_substr_count</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">:</span> <a href="http://www.php.net/ereg"><span style="color: #990000;">ereg</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_ereg"><span style="color: #990000;">mb_ereg</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span> <a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_eregi"><span style="color: #990000;">mb_eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>    <a href="http://www.php.net/ereg_replace"><span style="color: #990000;">ereg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_ereg_replace"><span style="color: #990000;">mb_ereg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span> <a href="http://www.php.net/eregi_replace"><span style="color: #990000;">eregi_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_eregi_replace"><span style="color: #990000;">mb_eregi_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span>    <a href="http://www.php.net/split"><span style="color: #990000;">split</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> → <a href="http://www.php.net/mb_split"><span style="color: #990000;">mb_split</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
mbstring<span style="color: #339933;">.</span>script_encoding <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 脚本所使用的编码
&nbsp;
mbstring<span style="color: #339933;">.</span>strict_detection <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用严谨的编码检测
&nbsp;
mbstring<span style="color: #339933;">.</span>substitute_character <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 当某个字符无法解码时，就是用这个字符替代。
<span style="color: #339933;">;</span> 若设为一个整数则表示对应的Unicode值，不设置任何值表示不显示这个错误字符。
<span style="color: #339933;">;</span> 建议设为<span style="color: #0000ff;">&quot;□&quot;</span>
&nbsp;
<span style="color: #009900;">&#91;</span>Mcrypt<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 一个mcrypt库的接口，该库支持许多种块加密算法。
<span style="color: #339933;">;</span> 不建议使用该模块，因为毛病太多，建议在数据库层进行加密。
&nbsp;
mcrypt<span style="color: #339933;">.</span>algorithms_dir <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 默认的加密算法模块所在目录。通常是<span style="color: #0000ff;">&quot;/usr/local/lib/libmcrypt&quot;</span>。
<span style="color: #339933;">;</span> 目前尚无详细说明文档，此处的解释可能是错误的。
&nbsp;
mcrypt<span style="color: #339933;">.</span>modes_dir <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 默认的加密模式模块所在目录。通常是<span style="color: #0000ff;">&quot;/usr/local/lib/libmcrypt&quot;</span>。
<span style="color: #339933;">;</span> 目前尚无说明文档，此处的解释可能是错误的。
&nbsp;
<span style="color: #009900;">&#91;</span>Memcache<span style="color: #339933;">-</span>2<span style="color: #339933;">.</span>2<span style="color: #339933;">.</span>2<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 一个高性能的分布式的内存对象缓存系统，通过在内存里维护一个统一的巨大的<a href="http://www.php.net/hash"><span style="color: #990000;">hash</span></a>表，
<span style="color: #339933;">;</span> 它能够用来存储各种格式的数据，包括图像、视频、文件以及数据库检索的结果等。
&nbsp;
memcache<span style="color: #339933;">.</span>allow_failover <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否在遇到错误时透明地向其他服务器进行故障转移。
&nbsp;
memcache<span style="color: #339933;">.</span>chunk_size <span style="color: #339933;">=</span> <span style="color: #cc66cc;">8192</span>
<span style="color: #339933;">;</span> 数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
<span style="color: #339933;">;</span> 如果发现无法解释的速度降低，可以尝试将此值增加到<span style="color: #cc66cc;">32768</span>。
&nbsp;
memcache<span style="color: #339933;">.</span>default_port <span style="color: #339933;">=</span> <span style="color: #cc66cc;">11211</span>
<span style="color: #339933;">;</span> 连接到memcached服务器时使用的默认TCP端口。
&nbsp;
memcache<span style="color: #339933;">.</span>max_failover_attempts <span style="color: #339933;">=</span> <span style="color: #cc66cc;">20</span>
<span style="color: #339933;">;</span> 接受和发送数据时最多尝试多少个服务器，进在打开memcache<span style="color: #339933;">.</span>allow_failover时有效。
&nbsp;
memcache<span style="color: #339933;">.</span>hash_strategy <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;standard&quot;</span>
<span style="color: #339933;">;</span> 控制将<a href="http://www.php.net/key"><span style="color: #990000;">key</span></a>映射到server的策略。默认值<span style="color: #0000ff;">&quot;standard&quot;</span>表示使用先前版本的老<a href="http://www.php.net/hash"><span style="color: #990000;">hash</span></a>策略。
<span style="color: #339933;">;</span> 设为<span style="color: #0000ff;">&quot;consistent&quot;</span>可以允许在连接池中添加<span style="color: #339933;">/</span>删除服务器时不必重新计算<a href="http://www.php.net/key"><span style="color: #990000;">key</span></a>与server之间的映射关系。
&nbsp;
memcache<span style="color: #339933;">.</span>hash_function <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;crc32&quot;</span>
<span style="color: #339933;">;</span> 控制将<a href="http://www.php.net/key"><span style="color: #990000;">key</span></a>映射到server的散列函数。默认值<span style="color: #0000ff;">&quot;crc32&quot;</span>使用<a href="http://www.php.net/crc32"><span style="color: #990000;">CRC32</span></a>算法，而<span style="color: #0000ff;">&quot;fnv&quot;</span>则表示使用FNV<span style="color: #339933;">-</span>1a算法。
<span style="color: #339933;">;</span> FNV<span style="color: #339933;">-</span>1a比<a href="http://www.php.net/crc32"><span style="color: #990000;">CRC32</span></a>速度稍低，但是散列效果更好。
&nbsp;
<span style="color: #009900;">&#91;</span>Zlib<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 该模块允许PHP透明的读取和写入gzip<span style="color: #009900;">&#40;</span><span style="color: #339933;">.</span>gz<span style="color: #009900;">&#41;</span>压缩文件。
&nbsp;
zlib<span style="color: #339933;">.</span>output_compression <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否使用zlib库透明地压缩脚本输出结果。
<span style="color: #339933;">;</span> 该指令的值可以设置为：Off、On、字节数<span style="color: #009900;">&#40;</span>压缩缓冲区大小，默认为<span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果打开该指令，当浏览器发送<span style="color: #0000ff;">&quot;Accept-Encoding: gzip(deflate)&quot;</span>头时，
<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;Content-Encoding: gzip(deflate)&quot;</span>和<span style="color: #0000ff;">&quot;Vary: Accept-Encoding&quot;</span>头将加入到应答头当中。
<span style="color: #339933;">;</span> 你可以在应答头输出之前用<a href="http://www.php.net/ini_set"><span style="color: #990000;">ini_set</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>函数在脚本中启用或禁止这个特性。
<span style="color: #339933;">;</span> 如果输出一个<span style="color: #0000ff;">&quot;Content-Type: image/??&quot;</span>这样的应答头，压缩将不会启用<span style="color: #009900;">&#40;</span>为了防止Netscape的bug<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 你可以在输出<span style="color: #0000ff;">&quot;Content-Type: image/??&quot;</span>之后使用<span style="color: #0000ff;">&quot;ini_set('zlib.output_compression', 'On')&quot;</span>重新打开这个特性。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> 压缩率会受压缩缓冲区大小的影响，如果你想得到更好的压缩质量，请指定一个较大的压缩缓冲区。
<span style="color: #339933;">;</span> 注意<span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span> 如果启用了zlib输出压缩，output_handler指令必须为空，同时必须设置zlib<span style="color: #339933;">.</span>output_handler指令的值。
&nbsp;
zlib<span style="color: #339933;">.</span>output_compression_level <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>
<span style="color: #339933;">;</span> 压缩级别，可用值为 <span style="color: #cc66cc;">0</span>~<span style="color: #cc66cc;">9</span> ，<span style="color: #cc66cc;">0</span>表示不压缩。值越高效果越好，但CPU占用越多，建议值为<span style="color: #cc66cc;">1</span>~<span style="color: #cc66cc;">5</span>。
<span style="color: #339933;">;</span> 默认值 <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> 表示使用zlib内部的默认值<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span>。
&nbsp;
zlib<span style="color: #339933;">.</span>output_handler <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> 在打开zlib<span style="color: #339933;">.</span>output_compression指令的情况下，你只能在这里指定输出处理器。
<span style="color: #339933;">;</span> 可以使用的处理器有<span style="color: #0000ff;">&quot;zlib.inflate&quot;</span><span style="color: #009900;">&#40;</span>解压<span style="color: #009900;">&#41;</span>或<span style="color: #0000ff;">&quot;zlib.deflate&quot;</span><span style="color: #009900;">&#40;</span>压缩<span style="color: #009900;">&#41;</span>。
<span style="color: #339933;">;</span> 如果启用该指令则必须将output_handler指令设为空。
&nbsp;
<span style="color: #009900;">&#91;</span>dbx<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> 一个数据库抽象层，为不同数据库提供了统一的接口。目前支持：
<span style="color: #339933;">;</span> FrontBase<span style="color: #339933;">,</span>SQL Server<span style="color: #339933;">,</span><a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a><span style="color: #339933;">,</span>ODBC<span style="color: #339933;">,</span>PostgreSQL<span style="color: #339933;">,</span>Sybase<span style="color: #339933;">-</span>CT<span style="color: #339933;">,</span>Oracle <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span>SQLite
&nbsp;
dbx<span style="color: #339933;">.</span>colnames_case <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;unchanged&quot;</span>
<span style="color: #339933;">;</span> 字段名可以按照<span style="color: #0000ff;">&quot;unchanged&quot;</span>或<span style="color: #0000ff;">&quot;uppercase&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;lowercase&quot;</span>方式返回。
&nbsp;
<span style="color: #009900;">&#91;</span>MySQLi<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span> MySQLi模块只能与4<span style="color: #339933;">.</span>1<span style="color: #339933;">.</span>3以上版本的<a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a>一起工作。
&nbsp;
mysqli<span style="color: #339933;">.</span>max_links <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>
<span style="color: #339933;">;</span> 每个进程中允许的最大连接数<span style="color: #009900;">&#40;</span>持久和非持久<span style="color: #009900;">&#41;</span>。<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> 代表无限制
&nbsp;
mysqli<span style="color: #339933;">.</span>default_port <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3306</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/mysqli_connect"><span style="color: #990000;">mysqli_connect</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>连接到<a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a>数据库时使用的默认TCP端口。
<span style="color: #339933;">;</span> 如果没有在这里指定默认值，将按如下顺序寻找：
<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #000088;">$MYSQL_TCP_PORT</span>环境变量
<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>services文件中的mysql<span style="color: #339933;">-</span>tcp项<span style="color: #009900;">&#40;</span>unix<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span>编译时指定的MYSQL_PORT常量
<span style="color: #339933;">;</span> 注意：Win32下，只使用MYSQL_PORT常量。
&nbsp;
mysqli<span style="color: #339933;">.</span>default_socket <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/mysqli_connect"><span style="color: #990000;">mysqli_connect</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>连接到本机<a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a>服务器时所使用的默认套接字名。
<span style="color: #339933;">;</span> 若未指定则使用内置的MqSQL默认值。
&nbsp;
mysqli<span style="color: #339933;">.</span>default_host <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/mysqli_connect"><span style="color: #990000;">mysqli_connect</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>连接到<a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a>数据库时使用的默认主机。安全模式下无效。
&nbsp;
mysqli<span style="color: #339933;">.</span>default_user <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/mysqli_connect"><span style="color: #990000;">mysqli_connect</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>连接到<a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a>数据库时使用的默认用户名。安全模式下无效。
&nbsp;
mysqli<span style="color: #339933;">.</span>default_pw <span style="color: #339933;">=</span>
<span style="color: #339933;">;</span> <a href="http://www.php.net/mysqli_connect"><span style="color: #990000;">mysqli_connect</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>连接到<a href="http://www.php.net/mysql"><span style="color: #990000;">MySQL</span></a>数据库时使用的默认密码。安全模式下无效。
<span style="color: #339933;">;</span> 在配置文件中保存密码是个坏主意，任何使用PHP权限的用户都可以运行
<span style="color: #339933;">;</span> <span style="color: #0000ff;">'echo cfg_get_var(&quot;mysql.default_password&quot;)'</span>来显示密码<span style="color: #339933;">!</span>
<span style="color: #339933;">;</span> 而且任何对该配置文件有读权限的用户也能看到密码。
&nbsp;
mysqli<span style="color: #339933;">.</span>reconnect <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否允许重新连接
&nbsp;
<span style="color: #009900;">&#91;</span>PostgresSQL<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">;</span>PostgresSQL模块建议与<span style="color:#800080;">8.0</span>以上版本一起工作。
&nbsp;
pgsql<span style="color: #339933;">.</span>allow_persistent <span style="color: #339933;">=</span> On
<span style="color: #339933;">;</span> 是否允许持久连接
&nbsp;
pgsql<span style="color: #339933;">.</span>max_persistent <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>
<span style="color: #339933;">;</span> 每个进程中允许的最大持久连接数。<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> 代表无限制。
&nbsp;
pgsql<span style="color: #339933;">.</span>max_links <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>
<span style="color: #339933;">;</span> 每个进程中允许的最大连接数<span style="color: #009900;">&#40;</span>持久和非持久<span style="color: #009900;">&#41;</span>。<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> 代表无限制。
&nbsp;
pgsql<span style="color: #339933;">.</span>auto_reset_persistent <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 自动复位在<a href="http://www.php.net/pg_pconnect"><span style="color: #990000;">pg_pconnect</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>上中断了的持久连接，检测需要一些额外开销。
&nbsp;
pgsql<span style="color: #339933;">.</span>ignore_notice <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否忽略PostgreSQL后端的提醒消息。
<span style="color: #339933;">;</span> 记录后端的提醒消息需要一些很小的额外开销。
&nbsp;
pgsql<span style="color: #339933;">.</span>log_notice <span style="color: #339933;">=</span> Off
<span style="color: #339933;">;</span> 是否在日志中记录PostgreSQL后端的提醒消息。
<span style="color: #339933;">;</span> 仅在pgsql<span style="color: #339933;">.</span>ignore_notice<span style="color: #339933;">=</span>Off时，才可以记录。</pre></td></tr></table></div>

<p>网络转载。<br />
php 官方文档<br />
php.ini 核心配置选项说明:<br />
<a href="http://docs.php.net/manual/zh/ini.core.php">http://docs.php.net/manual/zh/ini.core.php</a><br />
php.ini 配置选项列表:<br />
<a href="http://docs.php.net/manual/zh/ini.list.php">http://docs.php.net/manual/zh/ini.list.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-configuration-file-php-ini-details/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web 设计与开发终极资源大全</title>
		<link>http://www.blags.org/web-ultimate-design-and-development-resource-kit/</link>
		<comments>http://www.blags.org/web-ultimate-design-and-development-resource-kit/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 06:55:45 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Seo]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[机制]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=548</guid>
		<description><![CDATA[来自网络。摘抄一下。
1. 函数与类库
A. CAPTCHA
CAPTCHA 用来防止恶意表单发布，以下 CAPTCHA 系统可以轻松集成到你的程序中：
reCAPTCHA
这是目前最流行的 CAPTCHA 机制，该机制同时是一个古籍数字化工程的一部分，用户在验证的同时，也帮助辨认一些不够清晰的估计扫描。reCAPTCHA 还有一个 Perl 模块 实现该功能。
Securimage
这个一个免费的，开源 PHP CAPTCHA 脚本。
freeCap
基于 GPL 协议的 CAPTCHA 脚本
HN CAPTCHA
PHP CAPTCHA 脚本，基于 LGPL 协议
B. 日期处理
日期操作并不轻松，尽管 PHP 和 Perl 内置了大量此类函数，但未必满足你的需要，以下是几个很好用的日期函数：

PEAR Date
通用 PHP 日期类库
Date Class
PHP 类库，计算及其增减与日期差异
Date manipulation in PHP
PHPBuilder.com 上的一个教程，讲解如何进行日期处理
Date::Calc Perl Module
Perl模块，用于格列高利历法的日期计算

C. 图形处理
图片缩放，添加水印等：

Image Manipulation Class
在 PHP 中缩放，反转，旋转图片
PHP Thumbnailer
一个轻量级图片缩略图工具
PHP GD
一个强大的图片处理类库
Perl GD
Perl 图片处理模块

D. 表单验证
表单验证不仅保证用户填写的准确，还可以防止攻击：

validaForms
一个 PHP 表单验证类库
User Input Validation Class
一个 PHP <a href="http://www.blags.org/web-ultimate-design-and-development-resource-kit/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>来自网络。摘抄一下。<br />
1. 函数与类库</p>
<p>A. CAPTCHA</p>
<p>CAPTCHA 用来防止恶意表单发布，以下 CAPTCHA 系统可以轻松集成到你的程序中：</p>
<p><a href="http://recaptcha.net/">reCAPTCHA</a></p>
<p>这是目前最流行的 CAPTCHA 机制，该机制同时是一个古籍数字化工程的一部分，用户在验证的同时，也帮助辨认一些不够清晰的估计扫描。reCAPTCHA 还有一个 <a href="http://search.cpan.org/dist/Captcha-reCAPTCHA/lib/Captcha/reCAPTCHA.pm">Perl 模块</a> 实现该功能。</p>
<p><a href="http://www.phpcaptcha.org/">Securimage</a></p>
<p>这个一个免费的，开源 PHP CAPTCHA 脚本。</p>
<p><a href="http://www.puremango.co.uk/2005/04/php_captcha_script_113/"></a><a href="http://www.puremango.co.uk/2005/04/php_captcha_script_113/">freeCap</a></p>
<p>基于 GPL 协议的 CAPTCHA 脚本</p>
<p><a href="http://www.phpclasses.org/browse/package/1569.html">HN CAPTCHA</a></p>
<p>PHP CAPTCHA 脚本，基于 LGPL 协议</p>
<p>B. 日期处理</p>
<p>日期操作并不轻松，尽管 PHP 和 <a href="http://www.blags.org/tags/Perl/"title="Perl" >Perl</a> 内置了大量此类函数，但未必满足你的需要，以下是几个很好用的日期函数：</p>
<ul>
<li><a href="http://pear.php.net/package/Date">PEAR Date</a><br />
通用 PHP 日期类库</li>
<li><a href="http://www.phpclasses.org/browse/package/1649.html">Date Class</a><br />
PHP 类库，计算及其增减与日期差异</li>
<li><a href="http://www.phpbuilder.com/columns/akent20000610.php3">Date manipulation in PHP</a><br />
PHPBuilder.com 上的一个教程，讲解如何进行日期处理</li>
<li><a href="http://search.cpan.org/dist/Date-Calc/lib/Date/Calc.pod">Date::Calc Perl Module</a><br />
Perl模块，用于格列高利历法的日期计算</li>
</ul>
<p>C. 图形处理</p>
<p>图片缩放，添加水印等：</p>
<ul>
<li><a href="http://www.phpclasses.org/browse/package/3294.html">Image Manipulation Class</a><br />
在 PHP 中缩放，反转，旋转图片</li>
<li><a href="http://phpthumb.gxdlabs.com/">PHP Thumbnailer</a><br />
一个轻量级图片缩略图工具</li>
<li><a href="http://uk.php.net/manual/en/book.image.php">PHP GD</a><br />
一个强大的图片处理类库</li>
<li><a href="http://search.cpan.org/dist/GD/">Perl GD</a><br />
Perl 图片处理模块</li>
</ul>
<p>D. 表单验证</p>
<p>表单验证不仅保证用户填写的准确，还可以防止攻击：</p>
<ul>
<li><a href="http://www.phpclasses.org/browse/package/1698.html">validaForms</a><br />
一个 PHP 表单验证类库</li>
<li><a href="http://www.phpclasses.org/browse/package/3632.html">User Input Validation Class</a><br />
一个 PHP 表单验证基础库</li>
<li><a href="http://www.finalwebsites.com/snippets.php?id=15">Validate Form Fields Script</a><br />
另一个 PHP 表单验证基础库</li>
<li><a href="http://search.cpan.org/~shlomif/WWW-Form-1.18/lib/WWW/FieldValidator.pm">WWW::FieldValidator</a><br />
一个简单的 Perl 表单验证模块</li>
</ul>
<p>E. 密码验证<br />
验证密码的复杂度</p>
<ul>
<li><a href="http://rumkin.com/tools/password/passchk.php">Strength Test</a><br />
一个 PHP 密码强度验证函数</li>
<li><a href="http://www.phpclasses.org/browse/package/2966.html">Password Checker</a><br />
一个 PHP 类，用来验证密码强度</li>
<li><a href="http://search.cpan.org/~chisel/Data-Password-Check-0.08/lib/Data/Password/Check.pm">Data::Password::Check </a><br />
Perl 模块，用来验证密码强度</li>
</ul>
<p>2. Ajax 与 <a href="http://www.blags.org/tags/javascript/"title="javascript" >JavaScript</a></p>
<p>A. 自动输入建议</p>
<p>最早最成熟的自动输入建议应该是 Google 搜索条。</p>
<ul>
<li><a href="http://devthought.com/blog/projects-news/2008/01/textboxlist-meets-autocompletion/">Facebook-Style Autosuggest</a><br />
Facebook 风格的自动输入建议</li>
<li><a href="http://www.brandspankingnew.net/specials/ajax_autosuggest/ajax_autosuggest_autocomplete.html">Autosuggest / Autocomplete with Ajax</a><br />
基于 XML 和 JSON 数据源的自动输入建议工具</li>
<li><a href="http://wiki.github.com/madrobby/scriptaculous/ajax-autocompleter">Ajax.Autocompleter</a><br />
基于 script.aculo.us 的输入自动完成工具</li>
<li><a href="http://labs.adobe.com/technologies/spry/articles/data_api/apis/autosuggest.html">Adobe Labs Spry Auto Suggest</a><br />
由 Adobe 实验室提供的自动输入建议工具</li>
<li><a href="http://mattberseth.com/blog/2007/12/creating_a_google_suggest_styl.html">Google Suggest Style Filter</a><br />
Google Suggest 风格的自动输入建议</li>
</ul>
<p>B. 日历</p>
<p>在输入日期的地方，使用非常直观的日历面板</p>
<ul>
<li><a href="http://dev.base86.com/scripts/vista-like_ajax_calendar_version_2.html">Vista-Like Ajax Calendar</a><br />
基于 Mootools，Vista 风格</li>
<li><a href="http://www.dhtmlgoodies.com/index.html?page=calendarScripts">JS Calendar in DHTML Suite</a><br />
基于 <a href="http://www.blags.org/tags/java/"title="java" >Java</a>Script ，支持多日历连接</li>
<li><a href="http://www.opencrypt.com/blog.php?a=29">AJAX Calendar with PHP and MySQL</a><br />
一个开源的 AJAX 日历控件</li>
<li><a href="http://www.bmgadg.com/super_ajax_calendar.php">Super AJAX Calendar</a><br />
一个基于 PHP 和 <a href="http://www.blags.org/tags/mysql/"title="mysql" >MySQL</a> 的日历控件</li>
<li><a href="http://www.dhtmlx.com/docs/products/dhtmlxScheduler/">dhtmlxScheduler</a><br />
一个强大的事务日历</li>
</ul>
<p>C. 滑动条</p>
<p>滑动条可以更直观地进行数值的输入和选择</p>
<ul>
<li><a href="http://www.filamentgroup.com/lab/developing_an_accessible_slider/">Accessible Slider</a><br />
一个设计出众的滑动条控件</li>
<li><a href="http://www.phatfusion.net/slider/">Phatfusion Slider</a><br />
一个基于 AJAX 的滑动条</li>
<li><a href="http://www.mathertel.de/AJAXEngine/S03_AJAXControls/ConnectionsTestPage.aspx">AJAXEngine Sliders</a><br />
AJAXEngine 项目中的滑动条</li>
<li><a href="http://roshanbh.com.np/2008/01/slider-using-php-ajax-and-javascript.html">Slider Using PHP, Ajax And Javascript</a><br />
一个简单实用的 AJAX 滑动条</li>
<li><a href="http://webfx.eae.net/dhtml/slider/slider.html">WebFX Slider</a><br />
基于 Apache 软件许可 2.0 的滑动条控件</li>
</ul>
<p>D. 表格</p>
<p>Ajax 表格，支持排序等功能</p>
<ul>
<li><a href="http://www.extjs.com/playpen/ext-2.0/examples/grid/grid3.html">Grid3</a><br />
作为 Ext JS 库一部分的表格控件</li>
<li><a href="http://dhtmlx.com/docs/products/dhtmlxGrid/">dhtmlxGrid</a><br />
支持列排序和搜索</li>
<li><a href="http://www.frequency-decoder.com/2006/09/16/unobtrusive-table-sort-script-revisited">Unobtrusive Table Sort Script</a><br />
支持多列排序</li>
<li><a href="http://www.opencrypt.com/blog.php?a=22">AJAX Data Listings Engine</a><br />
基于 PHP 和 MySQL</li>
<li><a href="http://www.millstream.com.au/upload/code/tablekit/">TableKit</a><br />
基于 <a href="http://www.blags.org/tags/prototype/"title="js 框架" >Prototype</a> JavaScript 框架</li>
</ul>
<p>E. 可拖动内容</p>
<p>Ajax-based draggable content features can be very useful when used appropriately. Such tools enable users to reorganize a page to suit their needs, and can also serve as a basis for an interactive feature like a shopping basket.</p>
<ul>
<li><a href="http://www.dhtmlgoodies.com/index.html?page=dragDrop">Draggable Content Scripts</a><br />
dhtmlgoodies.com 推出多种可拖放内容脚本，以及图片裁剪工具</li>
<li><a href="http://www.twinhelix.com/javascript/dragresize/">DragResize</a><br />
支持尺寸修改功能</li>
<li><a href="http://tool-man.org/examples/sorting.html">Drag &amp; Drop Sortable Lists</a><br />
位置可调列表控件</li>
<li><a href="http://wiki.github.com/madrobby/scriptaculous/draggable">Scriptaculous Draggable</a><br />
script.aculo.us 框架的一部分</li>
</ul>
<p>F. 图片放大</p>
<p>类似 JavaScript 灯箱的图片放大显示控件</p>
<ul>
<li><a href="http://highslide.com/">Highslide JS</a><br />
在 Modal 窗口显示放大尺寸的图片</li>
<li><a href="http://cabel.name/2008/02/fancyzoom-10.html">FancyZoom</a><br />
图片缩放显示</li>
<li><a href="http://valid.tjp.hu/tjpzoom/">TJPzoom 3</a><br />
图片放大工具</li>
<li><a href="http://www.xul.fr/ajax/ajax-image-gallery.html">Ajax Script To Scale Images</a><br />
显示缩略图的放大尺寸版</li>
</ul>
<p>G. 相册和幻灯</p>
<p>用相册或幻灯方式显示系列图片</p>
<ul>
<li><a href="http://minishowcase.net/">minishowcase</a><br />
基于 AJAX 和 JSON 的相册控件</li>
<li><a href="http://www.leigeber.com/2008/12/javascript-slideshow/">Animated JavaScript Slideshow</a><br />
轻量级 JavaScript 图片幻灯效果，支持运动字幕</li>
<li><a href="http://sonspring.com/journal/hoverbox-image-gallery">Hoverbox Image Gallery</a><br />
简单的相册，鼠标在缩略图上移动时显示原图</li>
<li><a href="http://slideshow.triptracker.net/">TripTracker</a><br />
以幻灯方式显示图片</li>
<li><a href="http://www.agilegallery.com/ajax-photo-gallery.html">Agile Gallery (Ajax Version)</a><br />
AJAX 相册工具</li>
</ul>
<p>H. 打分工具</p>
<p>非常直观的打分控件</p>
<ul>
<li><a href="http://www.nickstakenburg.com/projects/starbox/">Starbox</a><br />
基于 Prototype JavaScript 框架</li>
<li><a href="http://masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/">Unobtrusive AJAX Star Rating Bar</a><br />
基于 PHP 和 AJAX</li>
<li><a href="http://www.yvoschaap.com/index.php/weblog/css_star_rater_ajax_version/">CSS: Star Rater Ajax Version</a><br />
基于 AJAX</li>
</ul>
<p>I. 取色板</p>
<p>用于取色</p>
<ul>
<li><a href="http://jscolor.com/">jscolor</a><br />
简单的弹出式取色板</li>
<li><a href="http://www.nogray.com/color_picker.php">JavaScript Color Picker</a><br />
支持 RGB，HSL，以及16进制图片色值</li>
<li><a href="http://www.softcomplex.com/products/tigra_color_picker/demo1.html">Tigra Color Picker</a><br />
非常简单的取色板</li>
<li><a href="http://johndyer.name/post/2007/09/26/PhotoShop-like-JavaScript-Color-Picker.aspx">Photoshop-like JavaScript Color Picker</a><br />
支持色调和饱和度选项</li>
<li><a href="http://www.eyecon.ro/colorpicker/">ColorPicker – jQuery Plugin</a><br />
基于 <a href="http://www.blags.org/tags/jquery/"title="jquery" >jQuery</a></li>
<li><a href="http://nofunc.org/DHTML_Color_Picker/">DHTML Color Picker</a><br />
基于 DHTML</li>
</ul>
<p>J. 进度条</p>
<ul>
<li><a href="http://www.bram.us/projects/js_bramus/jsprogressbarhandler/">jsProgressBarHandler</a><br />
非常灵活</li>
<li><a href="http://thecodecentral.com/2008/01/17/a-yui-loading-panel-widget">YUI Loading Panel Widget</a><br />
非常漂亮.</li>
<li><a href="http://www.webappers.com/2007/07/31/webappers-simple-ajax-progress-bar-with-css/">Simple Javascript Progress Bar with CSS</a><br />
简单实用.</li>
<li><a href="http://www.uploadify.com/">Uploadify</a><br />
基于 jQuery.</li>
</ul>
<p>本文国际来源：<a href="http://www.noupe.com/tools/100-essential-web-development-tools.html">http://www.noupe.com/tools/100-essential-web-development-tools.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/web-ultimate-design-and-development-resource-kit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php 简单 无级分类 无递归</title>
		<link>http://www.blags.org/php-simple-no-level-classification/</link>
		<comments>http://www.blags.org/php-simple-no-level-classification/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 15:06:01 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[无级分类]]></category>
		<category><![CDATA[递归]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=543</guid>
		<description><![CDATA[记录一下，以便以后使用。
替换成相应的字段.
代码如下:

View Code PHP    public static function toTree&#40;$rows&#41; &#123;
        if &#40; !is_array&#40;$rows&#41; &#41; return false;
        $tree = array&#40;&#41;;
        $index = array&#40;&#41;;
        foreach &#40; $rows as <a href="http://www.blags.org/php-simple-no-level-classification/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>记录一下，以便以后使用。</p>
<p>替换成相应的字段.<br />
代码如下:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p543code23'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p54323"><td class="code" id="p543code23"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> toTree<span style="color: #009900;">&#40;</span><span style="color: #000088;">$rows</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rows</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$tree</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$index</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$rows</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$row</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tree</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$tree</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$tree</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'child'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'child'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$index</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'child'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$tree</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-simple-no-level-classification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ubuntu php sphinxapi 使用方法</title>
		<link>http://www.blags.org/php-sphinxapi-use-method/</link>
		<comments>http://www.blags.org/php-sphinxapi-use-method/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 16:49:39 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mmseg]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sphinx]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=473</guid>
		<description><![CDATA[配置文件:youconfig.conf 
建立索引：

View Code SHELLsource src1
{
type                = mysql
sql_host            = localhost
sql_user            = root
sql_pass        <a href="http://www.blags.org/php-sphinxapi-use-method/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>配置文件:<span style="color: #ff0000;"><span style="color: #000000;">youconfig.conf</span> </span></p>
<p>建立索引：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p473code28'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p47328"><td class="code" id="p473code28"><pre class="shell" style="font-family:monospace;">source src1
{
type                = mysql
sql_host            = localhost
sql_user            = root
sql_pass            =
sql_db              = sphinx_test
sql_port            = 3306
sql_query           = SELECT id, name, description, UNIX_TIMESTAMP(created_at) AS created_at, group_id, rating FROM links
sql_attr_uint       = group_id
sql_attr_timestamp  = created_at
sql_attr_float      = rating
sql_attr_multi      = uint tags from query; SELECT link_id, tag_id FROM links_tags
sql_query_info      = SELECT * FROM links WHERE id=$id
}
source src2
{
type                = mysql
sql_host            = localhost
sql_user            = root
sql_pass            =
sql_db              = sphinx_test
sql_port            = 3306
sql_query           = SELECT id, name, description, UNIX_TIMESTAMP(created_at) AS created_at, group_id FROM links64
sql_attr_uint       = group_id
sql_attr_timestamp  = created_at
sql_query_info      = SELECT * FROM links WHERE id=$id
}
index test1
{
source              = src1
path                = /opt/sphinx-0.9.9/var/data/test1
docinfo             = extern
morphology          = none
stopwords           =
charset_type        = utf-8
}
index test2
{
source              = src2
path                = /opt/sphinx-0.9.9/var/data/test2
docinfo             = extern
morphology          = none
stopwords           =
charset_type        = utf-8
}
indexer
{
mem_limit           = 32M
}
searchd
{
port                = 9312
log                 = /opt/sphinx-0.9.9/var/log/searchd.log
query_log           = /opt/sphinx-0.9.9/var/log/query.log
read_timeout        = 5
max_children        = 30
pid_file            = /opt/sphinx-0.9.9/var/log/searchd.pid
max_matches         = 1000
}
&nbsp;
source src1{
type                = mysql
sql_host            = localhost
sql_user            = root
sql_pass            =
sql_db              = sphinx_test
sql_port            = 3306
sql_query           = SELECT id, name, description, UNIX_TIMESTAMP(created_at) AS created_at, group_id, rating FROM links    sql_attr_uint       = group_id
sql_attr_timestamp  = created_at
sql_attr_float      = rating
sql_attr_multi      = uint tags from query; SELECT link_id, tag_id FROM links_tags
sql_query_info      = SELECT * FROM links WHERE id=$id
}
source src2{
type                = mysql
sql_host            = localhost
sql_user            = root
sql_pass            =
sql_db              = sphinx_test
sql_port            = 3306
sql_query           = SELECT id, name, description, UNIX_TIMESTAMP(created_at) AS created_at, group_id FROM links64    sql_attr_uint       = group_id
sql_attr_timestamp  = created_at
sql_query_info      = SELECT * FROM links WHERE id=$id
}
&nbsp;
index test1{
source              = src1
path                = /opt/sphinx-0.9.9/var/data/test1
docinfo             = extern
morphology          = none
stopwords           =
charset_type        = utf-8
}
index test2{
source              = src2
path                = /opt/sphinx-0.9.9/var/data/test2
docinfo             = extern
morphology          = none
stopwords           =
charset_type        = utf-8
}
indexer{
mem_limit           = 32M
}
searchd{
port                = 9312
log                 = /opt/sphinx-0.9.9/var/log/searchd.log
query_log           = /opt/sphinx-0.9.9/var/log/query.log
read_timeout        = 5
max_children        = 30
pid_file            = /opt/sphinx-0.9.9/var/log/searchd.pid
max_matches         = 1000
}</pre></td></tr></table></div>


<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p473code29'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p47329"><td class="code" id="p473code29"><pre class="shell" style="font-family:monospace;">#/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/youconfig.conf --all
//建立索引
#/usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/youconfig.conf
//开启守护程序</pre></td></tr></table></div>

<p><span style="color: #ff0000;">youconfig.conf 是你的配置文件名称.</span><br />
php代码如下:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p473code30'); return false;">View Code</a> PHPL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p47330"><td class="code" id="p473code30"><pre class="phpl" style="font-family:monospace;">require_once 'api/sphinxapi.php';
$sc = new SphinxClient();
$sc-&amp;gt;SetServer('127.0.0.1',3312);
$sc-&amp;gt;SetConnectTimeout(1);
$sc-&amp;gt;SetWeights(array(100,1));
$sc-&amp;gt;SetLimits($start, $length, 10000);//返回结果
$sc-&amp;gt;SetMatchMode(SPH_MATCH_ALL);
$sc-&amp;gt;SetArrayResult(TRUE);
$res = $sc-&amp;gt;query($keywords);//关键字
print_r($res);//查询结果</pre></td></tr></table></div>

<p>附<a href="http://www.blags.org/tags/sphinx/"title="sphinx" >sphinx</a>api.php代码：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p473code31'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p47331"><td class="code" id="p473code31"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// $Id: sphinxapi.php 2055 2009-11-06 23:09:58Z shodan $</span>
<span style="color: #666666; font-style: italic;">//</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// Copyright (c) 2001-2008, Andrew Aksyonoff. All rights reserved.</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// This program is free software; you can redistribute it and/or modify</span>
<span style="color: #666666; font-style: italic;">// it under the terms of the GNU General Public License. You should have</span>
<span style="color: #666666; font-style: italic;">// received a copy of the GPL license along with this program; if you</span>
<span style="color: #666666; font-style: italic;">// did not, you can find it at http://www.gnu.org/</span>
<span style="color: #666666; font-style: italic;">//</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
<span style="color: #666666; font-style: italic;">// PHP version of Sphinx searchd client (PHP API)</span>
<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/// known searchd commands</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_SEARCH&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_EXCERPT&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_UPDATE&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_KEYWORDS&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_PERSIST&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_STATUS&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">5</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_COMMAND_QUERY&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">6</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/// current client-side command implementation versions</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;VER_COMMAND_SEARCH&quot;</span><span style="color: #339933;">,</span>		<span style="color: #208080;">0x116</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;VER_COMMAND_EXCERPT&quot;</span><span style="color: #339933;">,</span>		<span style="color: #208080;">0x100</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;VER_COMMAND_UPDATE&quot;</span><span style="color: #339933;">,</span>		<span style="color: #208080;">0x102</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;VER_COMMAND_KEYWORDS&quot;</span><span style="color: #339933;">,</span>	<span style="color: #208080;">0x100</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;VER_COMMAND_STATUS&quot;</span><span style="color: #339933;">,</span>		<span style="color: #208080;">0x100</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;VER_COMMAND_QUERY&quot;</span><span style="color: #339933;">,</span>		<span style="color: #208080;">0x100</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/// known searchd status codes</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_OK&quot;</span><span style="color: #339933;">,</span>				<span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_ERROR&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_RETRY&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SEARCHD_WARNING&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">3</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/// known match modes</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_ALL&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_ANY&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_PHRASE&quot;</span><span style="color: #339933;">,</span>		<span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_BOOLEAN&quot;</span><span style="color: #339933;">,</span>		<span style="color: #cc66cc;">3</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_EXTENDED&quot;</span><span style="color: #339933;">,</span>		<span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_FULLSCAN&quot;</span><span style="color: #339933;">,</span>		<span style="color: #cc66cc;">5</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_MATCH_EXTENDED2&quot;</span><span style="color: #339933;">,</span>		<span style="color: #cc66cc;">6</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">// extended engine V2 (TEMPORARY, WILL BE REMOVED)</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/// known ranking modes (ext2 only)</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_RANK_PROXIMITY_BM25&quot;</span><span style="color: #339933;">,</span>	<span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; default mode, phrase proximity major factor and BM25 minor one</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_RANK_BM25&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; statistical mode, BM25 ranking only (faster but worse quality)</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_RANK_NONE&quot;</span><span style="color: #339933;">,</span>			<span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; no ranking, all matches get a weight of 1</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SPH_RANK_WORDCOUNT&quot;</span><span style="color: #339933;">,</span>		<span style="color: #cc66cc;">3</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; simple word-count weighting, rank is a weighted sum of per-field keyword occurence counts define ( &quot;SPH_RANK_PROXIMITY&quot;,		4 ); define ( &quot;SPH_RANK_MATCHANY&quot;,		5 ); define ( &quot;SPH_RANK_FIELDMASK&quot;,		6 ); /// known sort modes define ( &quot;SPH_SORT_RELEVANCE&quot;,		0 ); define ( &quot;SPH_SORT_ATTR_DESC&quot;,		1 ); define ( &quot;SPH_SORT_ATTR_ASC&quot;,		2 ); define ( &quot;SPH_SORT_TIME_SEGMENTS&quot;, 	3 ); define ( &quot;SPH_SORT_EXTENDED&quot;, 		4 ); define ( &quot;SPH_SORT_EXPR&quot;, 			5 ); /// known filter types define ( &quot;SPH_FILTER_VALUES&quot;,		0 ); define ( &quot;SPH_FILTER_RANGE&quot;,		1 ); define ( &quot;SPH_FILTER_FLOATRANGE&quot;,	2 ); /// known attribute types define ( &quot;SPH_ATTR_INTEGER&quot;,		1 ); define ( &quot;SPH_ATTR_TIMESTAMP&quot;,		2 ); define ( &quot;SPH_ATTR_ORDINAL&quot;,		3 ); define ( &quot;SPH_ATTR_BOOL&quot;,			4 ); define ( &quot;SPH_ATTR_FLOAT&quot;,			5 ); define ( &quot;SPH_ATTR_BIGINT&quot;,			6 ); define ( &quot;SPH_ATTR_MULTI&quot;,			0x40000000 ); /// known grouping functions define ( &quot;SPH_GROUPBY_DAY&quot;,			0 ); define ( &quot;SPH_GROUPBY_WEEK&quot;,		1 ); define ( &quot;SPH_GROUPBY_MONTH&quot;,		2 ); define ( &quot;SPH_GROUPBY_YEAR&quot;,		3 ); define ( &quot;SPH_GROUPBY_ATTR&quot;,		4 ); define ( &quot;SPH_GROUPBY_ATTRPAIR&quot;,	5 ); // important properties of PHP's integers: //  - always signed (one bit short of PHP_INT_SIZE) //  - conversion from string to int is saturated //  - float is double //  - div converts arguments to floats //  - mod converts arguments to ints // the packing code below works as follows: //  - when we got an int, just pack it //    if performance is a problem, this is the branch users should aim for // //  - otherwise, we got a number in string form //    this might be due to different reasons, but we assume that this is //    because it didn't fit into PHP int // //  - factor the string into high and low ints for packing //    - if we have bcmath, then it is used //    - if we don't, we have to do it manually (this is the fun part) // //    - x64 branch does factoring using ints //    - x32 (ab)uses floats, since we can't fit unsigned 32-bit number into an int // // unpacking routines are pretty much the same. //  - return ints if we can //  - otherwise format number into a string /// pack 64-bit signed function sphPackI64 ( $v ) { 	assert ( is_numeric($v) ); 	 	// x64 	if ( PHP_INT_SIZE&amp;gt;=8 )</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$v</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$v</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #208080;">0xFFFFFFFF</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, int</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, bcmath</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bcmul&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/bccomp"><span style="color: #990000;">bccomp</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$v</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcadd"><span style="color: #990000;">bcadd</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;18446744073709551616&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcdiv"><span style="color: #990000;">bcdiv</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;4294967296&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcmod"><span style="color: #990000;">bcmod</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;4294967296&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// conversion to float is intentional; int would lose 31st bit</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, no-bcmath</span>
	<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/max"><span style="color: #990000;">max</span></a><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">13</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/abs"><span style="color: #990000;">abs</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/abs"><span style="color: #990000;">abs</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">*</span><span style="color:#800080;">1316134912.0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// (10 ^ 13) % (1 &amp;lt;&amp;lt; 32) = 1316134912</span>
	<span style="color: #000088;">$q</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/floor"><span style="color: #990000;">floor</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #339933;">/</span><span style="color:#800080;">4294967296.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$m</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$q</span><span style="color: #339933;">*</span><span style="color:#800080;">4294967296.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">*</span><span style="color:#800080;">2328.0</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$q</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// (10 ^ 13) / (1 &amp;lt;&amp;lt; 32) = 2328</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> 	<span style="color: #009900;">&#123;</span> 		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$l</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> 			<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color:#800080;">4294967296.0</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span> 		<span style="color: #b1b100;">else</span> 		<span style="color: #009900;">&#123;</span> 			<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color:#800080;">4294967295.0</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <span style="color:#800080;">4294967296.0</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$l</span><span style="color: #339933;">;</span> 		<span style="color: #009900;">&#125;</span> 	<span style="color: #009900;">&#125;</span> 	<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">/// pack 64-bit unsigned function sphPackU64 ( $v ) { 	assert ( is_numeric($v) ); 	 	// x64 	if ( PHP_INT_SIZE&amp;gt;=8 )</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// x64, int</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #208080;">0xFFFFFFFF</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// x64, bcmath</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bcmul&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcdiv"><span style="color: #990000;">bcdiv</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4294967296</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcmod"><span style="color: #990000;">bcmod</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4294967296</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// x64, no-bcmath</span>
		<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/max"><span style="color: #990000;">max</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">13</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">1316134912</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$m</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">4294967296</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">2328</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">4294967296</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, int</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, bcmath</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bcmul&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcdiv"><span style="color: #990000;">bcdiv</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;4294967296&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/bcmod"><span style="color: #990000;">bcmod</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;4294967296&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// conversion to float is intentional; int would lose 31st bit</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, no-bcmath</span>
	<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/max"><span style="color: #990000;">max</span></a><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">13</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">*</span><span style="color:#800080;">1316134912.0</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$q</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/floor"><span style="color: #990000;">floor</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span> <span style="color: #339933;">/</span> <span style="color:#800080;">4294967296.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$m</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$q</span> <span style="color: #339933;">*</span> <span style="color:#800080;">4294967296.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">*</span><span style="color:#800080;">2328.0</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$q</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// unpack 64-bit unsigned</span>
<span style="color: #000000; font-weight: bold;">function</span> sphUnpackU64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*N*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> PHP_INT_SIZE<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$hi</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// because php 5.2.2 to 5.2.5 is totally fucked up again</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// x64, int</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">2147483647</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$hi</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// x64, bcmath</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bcmul&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <a href="http://www.php.net/bcadd"><span style="color: #990000;">bcadd</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">,</span> <a href="http://www.php.net/bcmul"><span style="color: #990000;">bcmul</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;4294967296&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// x64, no-bcmath</span>
		<span style="color: #000088;">$C</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100000</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hi</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$C</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$lo</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$C</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hi</span> <span style="color: #339933;">%</span> <span style="color: #000088;">$C</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$lo</span> <span style="color: #339933;">%</span> <span style="color: #000088;">$C</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$l</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$C</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$h</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$l</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$C</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$l</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$l</span> <span style="color: #339933;">%</span> <span style="color: #000088;">$C</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$h</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$l</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%d</span><span style="color: #009933; font-weight: bold;">%05d</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, int</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hi</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, bcmath</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bcmul&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/bcadd"><span style="color: #990000;">bcadd</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">,</span> <a href="http://www.php.net/bcmul"><span style="color: #990000;">bcmul</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;4294967296&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x32, no-bcmath</span>
	<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$hi</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$lo</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$q</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/floor"><span style="color: #990000;">floor</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hi</span><span style="color: #339933;">/</span><span style="color:#800080;">10000000.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$hi</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$q</span><span style="color: #339933;">*</span><span style="color:#800080;">10000000.0</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$r</span><span style="color: #339933;">*</span><span style="color:#800080;">4967296.0</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$mq</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/floor"><span style="color: #990000;">floor</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #339933;">/</span><span style="color:#800080;">10000000.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$m</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$mq</span><span style="color: #339933;">*</span><span style="color:#800080;">10000000.0</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$q</span><span style="color: #339933;">*</span><span style="color:#800080;">4294967296.0</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$r</span><span style="color: #339933;">*</span><span style="color:#800080;">429.0</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$mq</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%.0f</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$l</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%07.0f</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$h</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;0&quot;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%.0f</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$l</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$h</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$l</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// unpack 64-bit signed</span>
<span style="color: #000000; font-weight: bold;">function</span> sphUnpackI64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*N*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// x64</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> PHP_INT_SIZE<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$hi</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// because php 5.2.2 to 5.2.5 is totally fucked up again</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$hi</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">;</span> 	<span style="color: #009900;">&#125;</span> 	<span style="color: #666666; font-style: italic;">// x32, int 	if ( $hi==0 ) 	{ 		if ( $lo&amp;gt;0 )</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">// x32, int</span>
	<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">==-</span><span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$lo</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%.0f</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #339933;">-</span> <span style="color:#800080;">4294967296.0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000088;">$neg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hi</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> 	<span style="color: #009900;">&#123;</span> 		<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> ~<span style="color: #000088;">$hi</span><span style="color: #339933;">;</span> 		<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> ~<span style="color: #000088;">$lo</span><span style="color: #339933;">;</span> 		<span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> 		<span style="color: #000088;">$neg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">;</span> 	<span style="color: #009900;">&#125;</span>	 	<span style="color: #000088;">$hi</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hi</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	<span style="color: #000088;">$lo</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lo</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	<span style="color: #666666; font-style: italic;">// x32, bcmath 	if ( function_exists(&quot;bcmul&quot;) ) 		return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, &quot;4294967296&quot; ) ), $c ); 	// x32, no-bcmath 	$hi = (float)$hi; 	$lo = (float)$lo; 	 	$q = floor($hi/10000000.0); 	$r = $hi - $q*10000000.0; 	$m = $lo + $r*4967296.0; 	$mq = floor($m/10000000.0); 	$l = $m - $mq*10000000.0 + $c; 	$h = $q*4294967296.0 + $r*429.0 + $mq; 	if ( $l==10000000 ) 	{ 		$l = 0; 		$h += 1; 	} 	$h = sprintf ( &quot;%.0f&quot;, $h ); 	$l = sprintf ( &quot;%07.0f&quot;, $l ); 	if ( $h==&quot;0&quot; ) 		return $neg . sprintf( &quot;%.0f&quot;, (float)$l ); 	return $neg . $h . $l; } function sphFixUint ( $value ) { 	if ( PHP_INT_SIZE&amp;gt;=8 )</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// x64 route, workaround broken unpack() in 5.2.2+</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$value</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$value</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">else</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// x32 route, workaround php signed/unsigned braindamage</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/// sphinx searchd client class</span>
<span style="color: #000000; font-weight: bold;">class</span> SphinxClient
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_host</span><span style="color: #339933;">;</span>			<span style="color: #666666; font-style: italic;">///&amp;lt; searchd host (default is &quot;localhost&quot;)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_port</span><span style="color: #339933;">;</span>			<span style="color: #666666; font-style: italic;">///&amp;lt; searchd port (default is 9312)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_offset</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; how many records to seek from result-set start (default is 0)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_limit</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; how many records to return from result-set starting at offset (default is 20)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_mode</span><span style="color: #339933;">;</span>			<span style="color: #666666; font-style: italic;">///&amp;lt; query matching mode (default is SPH_MATCH_ALL)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_weights</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; per-field weights (default is 1 for all fields)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_sort</span><span style="color: #339933;">;</span>			<span style="color: #666666; font-style: italic;">///&amp;lt; match sorting mode (default is SPH_SORT_RELEVANCE)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_sortby</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; attribute to sort by (defualt is &quot;&quot;)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_min_id</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; min ID to match (default is 0, which means no limit)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_max_id</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; max ID to match (default is 0, which means no limit)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_filters</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; search filters</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_groupby</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; group-by attribute name</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_groupfunc</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; group-by function (to pre-process group-by attribute value with)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_groupsort</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; group-by sorting clause (to sort groups in result set with)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_groupdistinct</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">///&amp;lt; group-by count-distinct attribute</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_maxmatches</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; max matches to retrieve</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_cutoff</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; cutoff to stop searching at (default is 0)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_retrycount</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; distributed retries count</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_retrydelay</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; distributed retries delay</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_anchor</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; geographical anchor point</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_indexweights</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; per-index weights</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_ranker</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; ranking mode (default is SPH_RANK_PROXIMITY_BM25)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_maxquerytime</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; max query time, milliseconds (default is 0, do not limit)</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_fieldweights</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; per-field-name weights</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_overrides</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; per-query attribute values overrides</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_select</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; select-list (attributes or expressions, with optional aliases)</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_error</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; last error message</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_warning</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; last warning message</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_connerror</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; connection error vs remote error flag</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_reqs</span><span style="color: #339933;">;</span>			<span style="color: #666666; font-style: italic;">///&amp;lt; requests array for multi-query</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_mbenc</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; stored mbstring encoding</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_arrayresult</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">///&amp;lt; whether $result[&quot;matches&quot;] should be a hash or an array</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$_timeout</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">///&amp;lt; connect timeout 	///////////////////////////////////////////////////////////////////////////// 	// common stuff 	///////////////////////////////////////////////////////////////////////////// 	/// create a new client object and fill defaults 	function SphinxClient () 	{ 		// per-client-object settings 		$this-&amp;gt;_host		= &quot;localhost&quot;;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_port		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">9312</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path		<span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket		<span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// per-query settings</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_offset		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_limit		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mode		<span style="color: #339933;">=</span> SPH_MATCH_ALL<span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_weights		<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sort		<span style="color: #339933;">=</span> SPH_SORT_RELEVANCE<span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sortby		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_min_id		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_max_id		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters		<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupby		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupfunc	<span style="color: #339933;">=</span> SPH_GROUPBY_DAY<span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupsort	<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;@group desc&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupdistinct<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_maxmatches	<span style="color: #339933;">=</span> <span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_cutoff		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_retrycount	<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_retrydelay	<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_anchor		<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_indexweights<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_ranker		<span style="color: #339933;">=</span> SPH_RANK_PROXIMITY_BM25<span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_maxquerytime<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_fieldweights<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_overrides 	<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_select		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// per-reply fields (for single-query case)</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_warning		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_connerror	<span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs		<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">// requests storage (for multi-query case)</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mbenc		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_arrayresult	<span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_timeout		<span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> __destruct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
			<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// get last error message (string)</span>
	<span style="color: #000000; font-weight: bold;">function</span> GetLastError <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// get last warning message (string)</span>
	<span style="color: #000000; font-weight: bold;">function</span> GetLastWarning <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_warning<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// get last error flag (to tell network connection errors from searchd errors or broken responses)</span>
	<span style="color: #000000; font-weight: bold;">function</span> IsConnectError<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_connerror<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set searchd host name (string) and port (integer)</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetServer <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$host</span><span style="color: #339933;">,</span> <span style="color: #000088;">$port</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$host</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$host</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path <span style="color: #339933;">=</span> <span style="color: #0000ff;">'unix://'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$host</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$host</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">7</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;unix://&quot;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path <span style="color: #339933;">=</span> <span style="color: #000088;">$host</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$port</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_host <span style="color: #339933;">=</span> <span style="color: #000088;">$host</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_port <span style="color: #339933;">=</span> <span style="color: #000088;">$port</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set server connection timeout (0 to remove)</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetConnectTimeout <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$timeout</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$timeout</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_timeout <span style="color: #339933;">=</span> <span style="color: #000088;">$timeout</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> _Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #000088;">$length</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/feof"><span style="color: #990000;">feof</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <a href="http://www.php.net/fwrite"><span style="color: #990000;">fwrite</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #000088;">$length</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #000088;">$length</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">'connection unexpectedly closed (timed out?)'</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_connerror <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// enter mbstring workaround mode</span>
	<span style="color: #000000; font-weight: bold;">function</span> _MBPush <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mbenc <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/ini_get"><span style="color: #990000;">ini_get</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;mbstring.func_overload&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mbenc <span style="color: #339933;">=</span> <a href="http://www.php.net/mb_internal_encoding"><span style="color: #990000;">mb_internal_encoding</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<a href="http://www.php.net/mb_internal_encoding"><span style="color: #990000;">mb_internal_encoding</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;latin1&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// leave mbstring workaround mode</span>
	<span style="color: #000000; font-weight: bold;">function</span> _MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mbenc <span style="color: #009900;">&#41;</span>
			<a href="http://www.php.net/mb_internal_encoding"><span style="color: #990000;">mb_internal_encoding</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mbenc <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// connect to searchd server</span>
	<span style="color: #000000; font-weight: bold;">function</span> _Connect <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket<span style="color: #339933;">!==</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// we are in persistent connection mode, so we have a socket</span>
			<span style="color: #666666; font-style: italic;">// however, need to check whether it's still alive</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!@</span><a href="http://www.php.net/feof"><span style="color: #990000;">feof</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket<span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// force reopen</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$errno</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$errstr</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_connerror <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$host</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path<span style="color: #339933;">;</span>
			<span style="color: #000088;">$port</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$host</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_host<span style="color: #339933;">;</span>
			<span style="color: #000088;">$port</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_port<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_timeout<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> 			<span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/fsockopen"><span style="color: #990000;">fsockopen</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$host</span><span style="color: #339933;">,</span> <span style="color: #000088;">$port</span><span style="color: #339933;">,</span> <span style="color: #000088;">$errno</span><span style="color: #339933;">,</span> <span style="color: #000088;">$errstr</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #b1b100;">else</span> 			<span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/fsockopen"><span style="color: #990000;">fsockopen</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$host</span><span style="color: #339933;">,</span> <span style="color: #000088;">$port</span><span style="color: #339933;">,</span> <span style="color: #000088;">$errno</span><span style="color: #339933;">,</span> <span style="color: #000088;">$errstr</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_timeout <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$fp</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path <span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$location</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_path<span style="color: #339933;">;</span>
			<span style="color: #b1b100;">else</span>
				<span style="color: #000088;">$location</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;{<span style="color: #006699; font-weight: bold;">$this</span>-&amp;gt;_host}:{<span style="color: #006699; font-weight: bold;">$this</span>-&amp;gt;_port}&quot;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$errstr</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/trim"><span style="color: #990000;">trim</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$errstr</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;connection to <span style="color: #006699; font-weight: bold;">$location</span> failed (errno=<span style="color: #006699; font-weight: bold;">$errno</span>, msg=<span style="color: #006699; font-weight: bold;">$errstr</span>)&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_connerror <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// send my version</span>
		<span style="color: #666666; font-style: italic;">// this is a subtle part. we must do it before (!) reading back from searchd.</span>
		<span style="color: #666666; font-style: italic;">// because otherwise under some conditions (reported on FreeBSD for instance)</span>
		<span style="color: #666666; font-style: italic;">// TCP stack could throttle write-write-read pattern because of Nagle.</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;failed to send client protocol version&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// check version</span>
		<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/fread"><span style="color: #990000;">fread</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$v</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$v</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> 		<span style="color: #009900;">&#123;</span> 			<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;expected searchd protocol version 1+, got version '<span style="color: #006699; font-weight: bold;">$v</span>'&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// get and check response packet from searchd server</span>
	<span style="color: #000000; font-weight: bold;">function</span> _GetResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$client_ver</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$header</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/fread"><span style="color: #990000;">fread</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$header</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$status</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ver</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;n2a/Nb&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$header</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$left</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$len</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$left</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/feof"><span style="color: #990000;">feof</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$chunk</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/fread"><span style="color: #990000;">fread</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$left</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$chunk</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$response</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$chunk</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$left</span> <span style="color: #339933;">-=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chunk</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
			<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// check response</span>
		<span style="color: #000088;">$read</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$response</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$read</span><span style="color: #339933;">!=</span><span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #000088;">$len</span>
				? <span style="color: #0000ff;">&quot;failed to read searchd response (status=<span style="color: #006699; font-weight: bold;">$status</span>, ver=<span style="color: #006699; font-weight: bold;">$ver</span>, len=<span style="color: #006699; font-weight: bold;">$len</span>, read=<span style="color: #006699; font-weight: bold;">$read</span>)&quot;</span>
				<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;received zero-sized searchd response&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// check status</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$status</span><span style="color: #339933;">==</span>SEARCHD_WARNING <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$wlen</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_warning <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wlen</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">+</span><span style="color: #000088;">$wlen</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$status</span><span style="color: #339933;">==</span>SEARCHD_ERROR <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;searchd error: &quot;</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$status</span><span style="color: #339933;">==</span>SEARCHD_RETRY <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;temporary searchd error: &quot;</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$status</span><span style="color: #339933;">!=</span>SEARCHD_OK <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;unknown status code '<span style="color: #006699; font-weight: bold;">$status</span>'&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// check version</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$ver</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$client_ver</span> <span style="color: #009900;">&#41;</span> 		<span style="color: #009900;">&#123;</span> 			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_warning <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;searchd command v.<span style="color: #009933; font-weight: bold;">%d</span>.<span style="color: #009933; font-weight: bold;">%d</span> older than client's v.<span style="color: #009933; font-weight: bold;">%d</span>.<span style="color: #009933; font-weight: bold;">%d</span>, some options might not work&quot;</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$ver</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ver</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #208080;">0xff</span><span style="color: #339933;">,</span> <span style="color: #000088;">$client_ver</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #000088;">$client_ver</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #208080;">0xff</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$response</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
	<span style="color: #666666; font-style: italic;">// searching</span>
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set offset and count into result set,</span>
	<span style="color: #666666; font-style: italic;">/// and optionally set max-matches and cutoff limits</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetLimits <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$offset</span><span style="color: #339933;">,</span> <span style="color: #000088;">$limit</span><span style="color: #339933;">,</span> <span style="color: #000088;">$max</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cutoff</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$limit</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$offset</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$limit</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$max</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_offset <span style="color: #339933;">=</span> <span style="color: #000088;">$offset</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_limit <span style="color: #339933;">=</span> <span style="color: #000088;">$limit</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$max</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_maxmatches <span style="color: #339933;">=</span> <span style="color: #000088;">$max</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$cutoff</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_cutoff <span style="color: #339933;">=</span> <span style="color: #000088;">$cutoff</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set maximum query time, in milliseconds, per-index</span>
	<span style="color: #666666; font-style: italic;">/// integer, 0 means &quot;do not limit&quot;</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetMaxQueryTime <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$max</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_maxquerytime <span style="color: #339933;">=</span> <span style="color: #000088;">$max</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set matching mode</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetMatchMode <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$mode</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_ALL
			<span style="color: #339933;">||</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_ANY
			<span style="color: #339933;">||</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_PHRASE
			<span style="color: #339933;">||</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_BOOLEAN
			<span style="color: #339933;">||</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_EXTENDED
			<span style="color: #339933;">||</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_FULLSCAN
			<span style="color: #339933;">||</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_MATCH_EXTENDED2 <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mode <span style="color: #339933;">=</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set ranking mode</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetRankingMode <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$ranker</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$ranker</span><span style="color: #339933;">==</span>SPH_RANK_PROXIMITY_BM25
			<span style="color: #339933;">||</span> <span style="color: #000088;">$ranker</span><span style="color: #339933;">==</span>SPH_RANK_BM25
			<span style="color: #339933;">||</span> <span style="color: #000088;">$ranker</span><span style="color: #339933;">==</span>SPH_RANK_NONE
			<span style="color: #339933;">||</span> <span style="color: #000088;">$ranker</span><span style="color: #339933;">==</span>SPH_RANK_WORDCOUNT
			<span style="color: #339933;">||</span> <span style="color: #000088;">$ranker</span><span style="color: #339933;">==</span>SPH_RANK_PROXIMITY <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_ranker <span style="color: #339933;">=</span> <span style="color: #000088;">$ranker</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set matches sorting mode</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetSortMode <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">,</span> <span style="color: #000088;">$sortby</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span>
			<span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_RELEVANCE <span style="color: #339933;">||</span>
			<span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_ATTR_DESC <span style="color: #339933;">||</span>
			<span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_ATTR_ASC <span style="color: #339933;">||</span>
			<span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_TIME_SEGMENTS <span style="color: #339933;">||</span>
			<span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_EXTENDED <span style="color: #339933;">||</span>
			<span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_EXPR <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sortby</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">==</span>SPH_SORT_RELEVANCE <span style="color: #339933;">||</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sortby</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sort <span style="color: #339933;">=</span> <span style="color: #000088;">$mode</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sortby <span style="color: #339933;">=</span> <span style="color: #000088;">$sortby</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// bind per-field weights by order</span>
	<span style="color: #666666; font-style: italic;">/// DEPRECATED; use SetFieldWeights() instead</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetWeights <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$weights</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$weights</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$weights</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$weight</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_weights <span style="color: #339933;">=</span> <span style="color: #000088;">$weights</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// bind per-field weights by name</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetFieldWeights <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$weights</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$weights</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$weights</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$name</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$weight</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_fieldweights <span style="color: #339933;">=</span> <span style="color: #000088;">$weights</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// bind per-index weights by name</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetIndexWeights <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$weights</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$weights</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$weights</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$index</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$weight</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_indexweights <span style="color: #339933;">=</span> <span style="color: #000088;">$weights</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set IDs range to match</span>
	<span style="color: #666666; font-style: italic;">/// only match records if document ID is beetwen $min and $max (inclusive)</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetIDRange <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$min</span><span style="color: #339933;">,</span> <span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$min</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$min</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_min_id <span style="color: #339933;">=</span> <span style="color: #000088;">$min</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_max_id <span style="color: #339933;">=</span> <span style="color: #000088;">$max</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set values set filter</span>
	<span style="color: #666666; font-style: italic;">/// only match records where $attribute value is in given set</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetFilter <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #000088;">$values</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exclude</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attribute</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span>
				<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>SPH_FILTER_VALUES<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;exclude&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$exclude</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;values&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$values</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set range filter</span>
	<span style="color: #666666; font-style: italic;">/// only match records if $attribute value is beetwen $min and $max (inclusive)</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetFilterRange <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #000088;">$min</span><span style="color: #339933;">,</span> <span style="color: #000088;">$max</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exclude</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attribute</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$min</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$min</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>SPH_FILTER_RANGE<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;exclude&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$exclude</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;min&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$min</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;max&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set float range filter</span>
	<span style="color: #666666; font-style: italic;">/// only match records if $attribute value is beetwen $min and $max (inclusive)</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetFilterFloatRange <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #000088;">$min</span><span style="color: #339933;">,</span> <span style="color: #000088;">$max</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exclude</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attribute</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_float"><span style="color: #990000;">is_float</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$min</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_float"><span style="color: #990000;">is_float</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$min</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>SPH_FILTER_FLOATRANGE<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;exclude&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$exclude</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;min&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$min</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;max&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// setup anchor point for geosphere distance calculations</span>
	<span style="color: #666666; font-style: italic;">/// required to use @geodist in filters and sorting</span>
	<span style="color: #666666; font-style: italic;">/// latitude and longitude must be in radians</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetGeoAnchor <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrlat</span><span style="color: #339933;">,</span> <span style="color: #000088;">$attrlong</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lat</span><span style="color: #339933;">,</span> <span style="color: #000088;">$long</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attrlat</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attrlong</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_float"><span style="color: #990000;">is_float</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$lat</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_float"><span style="color: #990000;">is_float</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$long</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_anchor <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;attrlat&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attrlat</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;attrlong&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attrlong</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;lat&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$lat</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;long&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$long</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set grouping attribute and function</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetGroupBy <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">,</span> <span style="color: #000088;">$func</span><span style="color: #339933;">,</span> <span style="color: #000088;">$groupsort</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;@group desc&quot;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attribute</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$groupsort</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$func</span><span style="color: #339933;">==</span>SPH_GROUPBY_DAY
			<span style="color: #339933;">||</span> <span style="color: #000088;">$func</span><span style="color: #339933;">==</span>SPH_GROUPBY_WEEK
			<span style="color: #339933;">||</span> <span style="color: #000088;">$func</span><span style="color: #339933;">==</span>SPH_GROUPBY_MONTH
			<span style="color: #339933;">||</span> <span style="color: #000088;">$func</span><span style="color: #339933;">==</span>SPH_GROUPBY_YEAR
			<span style="color: #339933;">||</span> <span style="color: #000088;">$func</span><span style="color: #339933;">==</span>SPH_GROUPBY_ATTR
			<span style="color: #339933;">||</span> <span style="color: #000088;">$func</span><span style="color: #339933;">==</span>SPH_GROUPBY_ATTRPAIR <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupby <span style="color: #339933;">=</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupfunc <span style="color: #339933;">=</span> <span style="color: #000088;">$func</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupsort <span style="color: #339933;">=</span> <span style="color: #000088;">$groupsort</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set count-distinct attribute for group-by queries</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetGroupDistinct <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attribute</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attribute</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupdistinct <span style="color: #339933;">=</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set distributed retries count and delay</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetRetries <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$count</span><span style="color: #339933;">,</span> <span style="color: #000088;">$delay</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$count</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$count</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$delay</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$delay</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_retrycount <span style="color: #339933;">=</span> <span style="color: #000088;">$count</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_retrydelay <span style="color: #339933;">=</span> <span style="color: #000088;">$delay</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set result set format (hash or array; hash by default)</span>
	<span style="color: #666666; font-style: italic;">/// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetArrayResult <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$arrayresult</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_bool"><span style="color: #990000;">is_bool</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arrayresult</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_arrayresult <span style="color: #339933;">=</span> <span style="color: #000088;">$arrayresult</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set attribute values override</span>
	<span style="color: #666666; font-style: italic;">/// there can be only one override per attribute</span>
	<span style="color: #666666; font-style: italic;">/// $values must be a hash that maps document IDs to attribute values</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetOverride <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrname</span><span style="color: #339933;">,</span> <span style="color: #000088;">$attrtype</span><span style="color: #339933;">,</span> <span style="color: #000088;">$values</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrname</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/in_array"><span style="color: #990000;">in_array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrtype</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> SPH_ATTR_INTEGER<span style="color: #339933;">,</span> SPH_ATTR_TIMESTAMP<span style="color: #339933;">,</span> SPH_ATTR_BOOL<span style="color: #339933;">,</span> SPH_ATTR_FLOAT<span style="color: #339933;">,</span> SPH_ATTR_BIGINT <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_overrides<span style="color: #009900;">&#91;</span><span style="color: #000088;">$attrname</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attrname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$attrtype</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;values&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$values</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// set select-list (attributes or expressions), SQL-like syntax</span>
	<span style="color: #000000; font-weight: bold;">function</span> SetSelect <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$select</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$select</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_select <span style="color: #339933;">=</span> <span style="color: #000088;">$select</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// clear all filters (for multi-queries)</span>
	<span style="color: #000000; font-weight: bold;">function</span> ResetFilters <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_anchor <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// clear groupby settings (for multi-queries)</span>
	<span style="color: #000000; font-weight: bold;">function</span> ResetGroupBy <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupby		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupfunc	<span style="color: #339933;">=</span> SPH_GROUPBY_DAY<span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupsort	<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;@group desc&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupdistinct<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// clear all attribute value overrides (for multi-queries)</span>
	<span style="color: #000000; font-weight: bold;">function</span> ResetOverrides <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    	<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_overrides <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// connect to searchd server, run given search query through given indexes,</span>
	<span style="color: #666666; font-style: italic;">/// and return the search results</span>
	<span style="color: #000000; font-weight: bold;">function</span> Query <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$index</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>AddQuery <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$index</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$results</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>RunQueries <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// just in case it failed too early</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$results</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// probably network error; error message should be already filled</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #000088;">$results</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;error&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_warning <span style="color: #339933;">=</span> <span style="color: #000088;">$results</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;warning&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$results</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>SEARCHD_ERROR <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">else</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$results</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// helper to pack floats in network byte order</span>
	<span style="color: #000000; font-weight: bold;">function</span> _PackFloat <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$f</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$t1</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;f&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$f</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// machine order</span>
		<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$t2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;L*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$t1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// int in machine order</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$t2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// add query to multi-query batch</span>
	<span style="color: #666666; font-style: italic;">/// returns index into results array from RunQueries() call</span>
	<span style="color: #000000; font-weight: bold;">function</span> AddQuery <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$index</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// mbstring workaround</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPush <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// build request</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NNNNN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_offset<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_limit<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_mode<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_ranker<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sort <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// mode and limits</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sortby<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_sortby<span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$query</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// query itself</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_weights<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// weights</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_weights <span style="color: #b1b100;">as</span> <span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$index</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// indexes</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// id64 range marker</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> sphPackU64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_min_id <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> sphPackU64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_max_id <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// id64 range</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// filters</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_filters <span style="color: #b1b100;">as</span> <span style="color: #000088;">$filter</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">case</span> SPH_FILTER_VALUES<span style="color: #339933;">:</span>
					<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;values&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;values&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span>
						<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> sphPackI64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">case</span> SPH_FILTER_RANGE<span style="color: #339933;">:</span>
					<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> sphPackI64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;min&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> sphPackI64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;max&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">case</span> SPH_FILTER_FLOATRANGE<span style="color: #339933;">:</span>
					<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_PackFloat <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;min&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_PackFloat <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;max&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
					<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;internal error: unhandled filter type&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;exclude&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// group-by clause, max-matches count, group-sort clause, cutoff count</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupfunc<span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupby<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupby<span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_maxmatches <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupsort<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupsort<span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NNN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_cutoff<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_retrycount<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_retrydelay <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupdistinct<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_groupdistinct<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// anchor point</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_anchor<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$a</span> <span style="color: #339933;">=&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_anchor<span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attrlat&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attrlat&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attrlong&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attrlong&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_PackFloat <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;lat&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_PackFloat <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;long&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// per-index weights</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_indexweights<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_indexweights <span style="color: #b1b100;">as</span> <span style="color: #000088;">$idx</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$idx</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$idx</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// max query time</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_maxquerytime <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// per-field weights</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_fieldweights<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_fieldweights <span style="color: #b1b100;">as</span> <span style="color: #000088;">$field</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$field</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// comment</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$comment</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// attribute overrides</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_overrides<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_overrides <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$entry</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$entry</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attr&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$entry</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;values&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$entry</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;values&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$id</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$val</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> sphPackU64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$id</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$entry</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">case</span> SPH_ATTR_FLOAT<span style="color: #339933;">:</span>	<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_PackFloat <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$val</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> SPH_ATTR_BIGINT<span style="color: #339933;">:</span>	<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> sphPackI64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$val</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>				<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$val</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// select-list</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_select<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_select<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// mbstring workaround</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// store request to requests array</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$req</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs<span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// connect to searchd, run queries batch, and return an array of result sets</span>
	<span style="color: #000000; font-weight: bold;">function</span> RunQueries <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;no queries defined, issue AddQuery() first&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// mbstring workaround</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPush <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// send query, get response</span>
		<span style="color: #000088;">$nreqs</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/join"><span style="color: #990000;">join</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">+</span><a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$req</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nnNN&quot;</span><span style="color: #339933;">,</span> SEARCHD_COMMAND_SEARCH<span style="color: #339933;">,</span> VER_COMMAND_SEARCH<span style="color: #339933;">,</span> <span style="color: #000088;">$len</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nreqs</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$req</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// add header</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$req</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
			 <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_GetResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> VER_COMMAND_SEARCH <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// query sent ok; we can reset reqs now</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_reqs <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// parse and return response</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_ParseSearchResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nreqs</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// parse and return search query (or queries) response</span>
	<span style="color: #000000; font-weight: bold;">function</span> _ParseSearchResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nreqs</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// current position</span>
		<span style="color: #000088;">$max</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// max position for checks, to protect against broken responses</span>
&nbsp;
		<span style="color: #000088;">$results</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$ires</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$ires</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$nreqs</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$p</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$max</span><span style="color: #339933;">;</span> <span style="color: #000088;">$ires</span><span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> 		<span style="color: #009900;">&#123;</span> 			<span style="color: #000088;">$results</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$result</span> <span style="color: #339933;">=&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$results</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ires</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;error&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;warning&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span> 			<span style="color: #666666; font-style: italic;">// extract status 			list(,$status) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 			$result[&quot;status&quot;] = $status; 			if ( $status!=SEARCHD_OK ) 			{ 				list(,$len) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 				$message = substr ( $response, $p, $len ); $p += $len; 				if ( $status==SEARCHD_WARNING ) 				{ 					$result[&quot;warning&quot;] = $message; 				} else 				{ 					$result[&quot;error&quot;] = $message; 					continue; 				} 			} 			// read schema 			$fields = array (); 			$attrs = array (); 			list(,$nfields) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 			while ( $nfields--&amp;gt;0 &amp;amp;&amp;amp; $p&amp;lt;$max ) 			{ 				list(,$len) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 				$fields[] = substr ( $response, $p, $len ); $p += $len; 			} 			$result[&quot;fields&quot;] = $fields; 			list(,$nattrs) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 			while ( $nattrs--&amp;gt;0 &amp;amp;&amp;amp; $p&amp;lt;$max  ) 			{ 				list(,$len) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 				$attr = substr ( $response, $p, $len ); $p += $len; 				list(,$type) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 				$attrs[$attr] = $type; 			} 			$result[&quot;attrs&quot;] = $attrs; 			// read match count 			list(,$count) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 			list(,$id64) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 			// read matches 			$idx = -1; 			while ( $count--&amp;gt;0 &amp;amp;&amp;amp; $p&amp;lt;$max ) 			{ 				// index into result array 				$idx++; 				// parse document id and weight 				if ( $id64 ) 				{ 					$doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; 					list(,$weight) = unpack ( &quot;N*&quot;, substr ( $response, $p, 4 ) ); $p += 4; 				} 				else 				{ 					list ( $doc, $weight ) = array_values ( unpack ( &quot;N*N*&quot;, 						substr ( $response, $p, 8 ) ) ); 					$p += 8; 					$doc = sphFixUint($doc); 				} 				$weight = sprintf ( &quot;%u&quot;, $weight ); 				// create match entry 				if ( $this-&amp;gt;_arrayresult )</span>
					<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;matches&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$idx</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$doc</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;weight&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$weight</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">else</span>
					<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;matches&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$doc</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;weight&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$weight</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">// parse and create attributes</span>
				<span style="color: #000088;">$attrvals</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrs</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$attr</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$type</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #666666; font-style: italic;">// handle 64bit ints</span>
					<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$type</span><span style="color: #339933;">==</span>SPH_ATTR_BIGINT <span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						<span style="color: #000088;">$attrvals</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> sphUnpackI64 <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
&nbsp;
					<span style="color: #666666; font-style: italic;">// handle floats</span>
					<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$type</span><span style="color: #339933;">==</span>SPH_ATTR_FLOAT <span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$uval</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span>
						<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$fval</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;f*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;L&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$uval</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$attrvals</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$fval</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
&nbsp;
					<span style="color: #666666; font-style: italic;">// handle everything else as unsigned ints</span>
					<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$type</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> SPH_ATTR_MULTI <span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						<span style="color: #000088;">$attrvals</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$nvalues</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$val</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$nvalues</span><span style="color: #339933;">--&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$p</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span> 						<span style="color: #009900;">&#123;</span> 							<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> 							<span style="color: #000088;">$attrvals</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> sphFixUint<span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 						<span style="color: #009900;">&#125;</span> 					<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> 					<span style="color: #009900;">&#123;</span> 						<span style="color: #000088;">$attrvals</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> sphFixUint<span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 					<span style="color: #009900;">&#125;</span> 				<span style="color: #009900;">&#125;</span> 				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_arrayresult <span style="color: #009900;">&#41;</span>
					<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;matches&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$idx</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attrs&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$attrvals</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">else</span>
					<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;matches&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$doc</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;attrs&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$attrvals</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$total</span><span style="color: #339933;">,</span> <span style="color: #000088;">$total_found</span><span style="color: #339933;">,</span> <span style="color: #000088;">$msecs</span><span style="color: #339933;">,</span> <span style="color: #000088;">$words</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span>
				<a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*N*N*N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">16</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;total&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$total</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;total_found&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$total_found</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;time&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%.3f</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$msecs</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">1000</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">16</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$words</span><span style="color: #339933;">--&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$p</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span> 			<span style="color: #009900;">&#123;</span> 				<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$len</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> 				<span style="color: #000088;">$word</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$len</span><span style="color: #339933;">;</span> 				<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$docs</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hits</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span> 				<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;words&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$word</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> 					<span style="color: #0000ff;">&quot;docs&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>sprintf <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$docs</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
					<span style="color: #0000ff;">&quot;hits&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>sprintf <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%u</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hits</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$results</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
	<span style="color: #666666; font-style: italic;">// excerpts generation</span>
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// connect to searchd server, and generate exceprts (snippets)</span>
	<span style="color: #666666; font-style: italic;">/// of given documents for given query. returns false on failure,</span>
	<span style="color: #666666; font-style: italic;">/// an array of snippets on success</span>
	<span style="color: #000000; font-weight: bold;">function</span> BuildExcerpts <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$docs</span><span style="color: #339933;">,</span> <span style="color: #000088;">$index</span><span style="color: #339933;">,</span> <span style="color: #000088;">$words</span><span style="color: #339933;">,</span> <span style="color: #000088;">$opts</span><span style="color: #339933;">=</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$docs</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPush <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">/////////////////</span>
		<span style="color: #666666; font-style: italic;">// fixup options</span>
		<span style="color: #666666; font-style: italic;">/////////////////</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;before_match&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>		<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;before_match&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;strong&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;after_match&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>			<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;after_match&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;/strong&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;chunk_separator&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>		<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;chunk_separator&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; ... &quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;limit&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>				<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;limit&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;around&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>				<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;around&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;exact_phrase&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>		<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;exact_phrase&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;single_passage&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>		<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;single_passage&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;use_boundaries&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>		<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;use_boundaries&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;weight_order&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>		<span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;weight_order&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">/////////////////</span>
		<span style="color: #666666; font-style: italic;">// build request</span>
		<span style="color: #666666; font-style: italic;">/////////////////</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// v.1.0 req</span>
		<span style="color: #000088;">$flags</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// remove spaces</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;exact_phrase&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span>	<span style="color: #000088;">$flags</span> <span style="color: #339933;">|=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;single_passage&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span>	<span style="color: #000088;">$flags</span> <span style="color: #339933;">|=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;use_boundaries&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span>	<span style="color: #000088;">$flags</span> <span style="color: #339933;">|=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;weight_order&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span>	<span style="color: #000088;">$flags</span> <span style="color: #339933;">|=</span> <span style="color: #cc66cc;">16</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;NN&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$flags</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// mode=0, flags=$flags</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$index</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// req index</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$words</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// req words</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// options</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;before_match&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;before_match&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;after_match&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;after_match&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;chunk_separator&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;chunk_separator&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;limit&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$opts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;around&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// documents</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$docs</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$docs</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$doc</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$doc</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$doc</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$doc</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">////////////////////////////</span>
		<span style="color: #666666; font-style: italic;">// send query, get response</span>
		<span style="color: #666666; font-style: italic;">////////////////////////////</span>
&nbsp;
		<span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$req</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nnN&quot;</span><span style="color: #339933;">,</span> SEARCHD_COMMAND_EXCERPT<span style="color: #339933;">,</span> VER_COMMAND_EXCERPT<span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$req</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// add header</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$req</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
			 <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_GetResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> VER_COMMAND_EXCERPT <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//////////////////</span>
		<span style="color: #666666; font-style: italic;">// parse response</span>
		<span style="color: #666666; font-style: italic;">//////////////////</span>
&nbsp;
		<span style="color: #000088;">$pos</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$rlen</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #000088;">$rlen</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;incomplete reply&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000088;">$res</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$len</span> ? <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$len</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
	<span style="color: #666666; font-style: italic;">// keyword generation</span>
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// connect to searchd server, and generate keyword list for a given query</span>
	<span style="color: #666666; font-style: italic;">/// returns false on failure,</span>
	<span style="color: #666666; font-style: italic;">/// an array of words on success</span>
	<span style="color: #000000; font-weight: bold;">function</span> BuildKeywords <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$index</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hits</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_bool"><span style="color: #990000;">is_bool</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hits</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPush <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">/////////////////</span>
		<span style="color: #666666; font-style: italic;">// build request</span>
		<span style="color: #666666; font-style: italic;">/////////////////</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// v.1.0 req</span>
		<span style="color: #000088;">$req</span>  <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$query</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// req query</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$index</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// req index</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$hits</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">////////////////////////////</span>
		<span style="color: #666666; font-style: italic;">// send query, get response</span>
		<span style="color: #666666; font-style: italic;">////////////////////////////</span>
&nbsp;
		<span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$req</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nnN&quot;</span><span style="color: #339933;">,</span> SEARCHD_COMMAND_KEYWORDS<span style="color: #339933;">,</span> VER_COMMAND_KEYWORDS<span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$req</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// add header</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$req</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
			 <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_GetResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> VER_COMMAND_KEYWORDS <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//////////////////</span>
		<span style="color: #666666; font-style: italic;">// parse response</span>
		<span style="color: #666666; font-style: italic;">//////////////////</span>
&nbsp;
		<span style="color: #000088;">$pos</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$rlen</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$nwords</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$nwords</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> 		<span style="color: #009900;">&#123;</span> 			<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$len</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$tokenized</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$len</span> ? <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$len</span><span style="color: #339933;">;</span> 			<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$len</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$normalized</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$len</span> ? <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$len</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$res</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;tokenized&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$tokenized</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;normalized&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$normalized</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hits</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ndocs</span><span style="color: #339933;">,</span><span style="color: #000088;">$nhits</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$pos</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$res</span> <span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;docs&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$ndocs</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$res</span> <span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;hits&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$nhits</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$pos</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$rlen</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;incomplete reply&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> EscapeString <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$string</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$from</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'\\'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'('</span><span style="color: #339933;">,</span><span style="color: #0000ff;">')'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'|'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'!'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'@'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'~'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&amp;amp;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'^'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'$'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'='</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$to</span>   <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'\\\\'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'\('</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\)'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\|'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\-'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\!'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\@'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\~'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\&quot;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'\&amp;amp;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'\/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'\^'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'\$'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'\='</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$from</span><span style="color: #339933;">,</span> <span style="color: #000088;">$to</span><span style="color: #339933;">,</span> <span style="color: #000088;">$string</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
	<span style="color: #666666; font-style: italic;">// attribute updates</span>
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// batch update given attributes in given rows in given indexes</span>
	<span style="color: #666666; font-style: italic;">/// returns amount of updated documents (0 or more) on success, or -1 on failure</span>
	<span style="color: #000000; font-weight: bold;">function</span> UpdateAttributes <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$index</span><span style="color: #339933;">,</span> <span style="color: #000088;">$attrs</span><span style="color: #339933;">,</span> <span style="color: #000088;">$values</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mva</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// verify everything</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_bool"><span style="color: #990000;">is_bool</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mva</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attrs</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrs</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$attr</span> <span style="color: #009900;">&#41;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_string"><span style="color: #990000;">is_string</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$id</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$entry</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attrs</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$entry</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$mva</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_array"><span style="color: #990000;">is_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$vv</span> <span style="color: #009900;">&#41;</span>
						<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$vv</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span>
					<a href="http://www.php.net/assert"><span style="color: #990000;">assert</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/is_int"><span style="color: #990000;">is_int</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// build request</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$index</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attrs</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$attrs</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$attr</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attr</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$attr</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mva</span> ? <span style="color: #cc66cc;">1</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$id</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$entry</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> sphPackU64 <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$id</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$entry</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mva</span> ? <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$v</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$mva</span> <span style="color: #009900;">&#41;</span>
					<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$v</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$vv</span> <span style="color: #009900;">&#41;</span>
						<span style="color: #000088;">$req</span> <span style="color: #339933;">.=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$vv</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// connect, send query, get response</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$req</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nnN&quot;</span><span style="color: #339933;">,</span> SEARCHD_COMMAND_UPDATE<span style="color: #339933;">,</span> VER_COMMAND_UPDATE<span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$req</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// add header</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$req</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_GetResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> VER_COMMAND_UPDATE <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// parse response</span>
		<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$updated</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$updated</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
	<span style="color: #666666; font-style: italic;">// persistent connections</span>
	<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> Open<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">'already connected'</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// command, command version = 0, body length = 4, body = 1</span>
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nnNN&quot;</span><span style="color: #339933;">,</span> SEARCHD_COMMAND_PERSIST<span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$req</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">=</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> Close<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_error <span style="color: #339933;">=</span> <span style="color: #0000ff;">'not connected'</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<a href="http://www.php.net/fclose"><span style="color: #990000;">fclose</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_socket <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//////////////////////////////////////////////////////////////////////////</span>
	<span style="color: #666666; font-style: italic;">// status</span>
	<span style="color: #666666; font-style: italic;">//////////////////////////////////////////////////////////////////////////</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> Status <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPush <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/pack"><span style="color: #990000;">pack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nnNN&quot;</span><span style="color: #339933;">,</span> SEARCHD_COMMAND_STATUS<span style="color: #339933;">,</span> VER_COMMAND_STATUS<span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// len=4, body=1</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_Send <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$req</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
			 <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_GetResponse <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> VER_COMMAND_STATUS <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// just ignore length, error handling, etc</span>
		<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$rows</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cols</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_values"><span style="color: #990000;">array_values</span></a> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$rows</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #000088;">$cols</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> 		<span style="color: #009900;">&#123;</span> 			<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #339933;">,</span><span style="color: #000088;">$len</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/unpack"><span style="color: #990000;">unpack</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;N*&quot;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> 			<span style="color: #000088;">$res</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$response</span><span style="color: #339933;">,</span> <span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #000088;">$len</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$p</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$len</span><span style="color: #339933;">;</span> 		<span style="color: #009900;">&#125;</span> 		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_MBPop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// $Id: sphinxapi.php 2055 2009-11-06 23:09:58Z shodan $</span>
<span style="color: #666666; font-style: italic;">//&lt;span style=&quot;font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;line-height: 19px; white-space: normal;&quot;&gt;</span>
<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&lt;/</span>span<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-sphinxapi-use-method/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ecshop 数据结构 大全</title>
		<link>http://www.blags.org/ecshop-data-structure-all/</link>
		<comments>http://www.blags.org/ecshop-data-structure-all/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:53:54 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[ecshop]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[后台]]></category>
		<category><![CDATA[数据结构]]></category>
		<category><![CDATA[电子商务]]></category>
		<category><![CDATA[答案]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=393</guid>
		<description><![CDATA[网上找到的：
方面日后用到

View Code SQLECSHOP 数据字典
– 表的结构 `ecs_account_log`
CREATE TABLE IF NOT EXISTS `ecs_account_log` &#40;
`log_id` mediumint&#40;8&#41; unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增ID号’,
`user_id` mediumint&#40;8&#41; unsigned NOT NULL COMMENT ‘用户登录后保存在session中的id号，跟users表中的user_id对应’,
`user_money` decimal&#40;10,2&#41; NOT NULL COMMENT ‘用户该笔记录的余额’,
`frozen_money` decimal&#40;10,2&#41; NOT NULL COMMENT ‘被冻结的资金’,
`rank_points` mediumint&#40;9&#41; NOT NULL COMMENT ‘等级积分，跟消费积分是分开的’,
`pay_points` mediumint&#40;9&#41; NOT NULL COMMENT ‘消费积分，跟等级积分是分开的’,
`change_time` int&#40;10&#41; unsigned NOT NULL COMMENT ‘该笔操作发生的时间‘,
`change_desc` varchar&#40;255&#41; NOT NULL COMMENT <a href="http://www.blags.org/ecshop-data-structure-all/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>网上找到的：</p>
<p>方面日后用到</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p393code33'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39333"><td class="code" id="p393code33"><pre class="sql" style="font-family:monospace;">ECSHOP 数据字典
– 表的结构 <span style="color: #ff0000;">`ecs_account_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_account_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户登录后保存在session中的id号，跟users表中的user_id对应’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户该笔记录的余额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`frozen_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘被冻结的资金’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`rank_points`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">9</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘等级积分，跟消费积分是分开的’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_points`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">9</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘消费积分，跟等级积分是分开的’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`change_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该笔操作发生的时间‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`change_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该笔操作的备注，一般是，充值或者提现。也可是是管理员后台写的任何在备注’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`change_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘操作类型，<span style="color: #cc66cc;">0</span>为充值，<span style="color: #cc66cc;">1</span>为提现，<span style="color: #cc66cc;">2</span>为管理员调节，<span style="color: #cc66cc;">99</span>为其他类型’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’用户帐号情况记录表，包括资金和积分等’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">42</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_ad`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_ad`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`ad_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`position_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>站外广告；从<span style="color: #cc66cc;">1</span>开始代表的是该广告所处的广告位，同表ad_position中的字段position_id的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`media_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘广告类型，<span style="color: #cc66cc;">0</span>，图片；<span style="color: #cc66cc;">1</span>，flash;<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span>代码；<span style="color: #cc66cc;">3</span>，文字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ad_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该条广告记录的广告名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ad_link`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告链接地址‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ad_code`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告链接的表现，文字广告就是文字或图片和flash就是它们的地址，代码广告就是代码内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`start_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘广告开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`end_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘广告结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_man`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告联系人’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告联系人的邮箱’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_phone`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告联系人的电话’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`click_count`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该广告点击数’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`enabled`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘该广告是否关闭，<span style="color: #cc66cc;">1</span>，开启；<span style="color: #cc66cc;">0</span>，关闭；关闭后广告将不再有效，直至重新开启’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`ad_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`position_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`position_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`enabled`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`enabled`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’广告列表配置表，包括站内站外的图片，文字，flash，代码广告’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">6</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_admin_action`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_admin_action`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`action_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该id项的父id，对应本表的action_id字段’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`action_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘代表权限的英文字符串，对应汉文在语言文件中，如果该字段有某个字符串，就表示有该权限’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`action_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’管理员权限列表树’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">104</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_admin_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_admin_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`log_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘写日志时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该日志所记录的操作者id，同ecs_admin_user的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`log_info`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理操作内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ip_address`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理者登录ip’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`log_time`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_time`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’管理员操作日志表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">158</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_admin_message`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_admin_message`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`message_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sender_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘发送该留言的管理员id，同ecs_admin_user的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`receiver_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘接收消息的管理员id，同ecs_admin_user的user_id，如果是给多个管理员发送，则同一个消息给每个管理员id发送一条’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sent_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘留言发送时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`read_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘留言阅读时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`readed`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘留言是否阅读，<span style="color: #cc66cc;">1</span>，已阅读；<span style="color: #cc66cc;">0</span>，未阅读’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`deleted`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘留言是否已经是否已经被删除，<span style="color: #cc66cc;">1</span>，已删除；<span style="color: #cc66cc;">0</span>，未删除’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`title`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘留言的主题’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`message`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘留言的内容’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`message_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`sender_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`sender_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`receiver_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`receiver_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`receiver_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’管理员留言记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">7</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_admin_user`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_admin_user`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`user_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号，管理员代号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员登录名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员邮箱’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`password`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员登录秘密加密串’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘管理员添加时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_login`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘管理员最后一次登录时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_ip`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员最后一次登录ip’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`action_list`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员管理权限列表’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`nav_list`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员导航栏配置项’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`lang_type`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`agency_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该管理员负责的办事处的id，同ecs_agency的agency_id字段。如果管理员没负责办事处，则此处为<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`todolist`</span> longtext COMMENT ‘记事本记录的数据‘<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_name`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_name`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`agency_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`agency_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’管理员资料权限列表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">4</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_adsense`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_adsense`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`from_ad`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘广告代号，<span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>是站外广告，如果是站内广告则为ecs_ad的ad_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`referer`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面来源’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`clicks`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘点击率’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`from_ad`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`from_ad`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’广告点击率统计表’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_ad_position`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_ad_position`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`position_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘广告位自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`position_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告位名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ad_width`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘广告位宽度’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ad_height`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘广告位高度’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`position_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告位描述‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`position_style`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘广告位模板代码’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`position_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’广告位置配置表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_affiliate_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_affiliate_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`point`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`separate_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’分成相关的表，还没研究透’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_agency`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_agency`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`agency_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘办事处ID’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`agency_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘办事处名字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`agency_desc`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘办事处描述’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`agency_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`agency_name`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`agency_name`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’办事处信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_area_region`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_area_region`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`shipping_area_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘配送区域的id号，等同于ecs_shipping_area的shipping_area_id的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`region_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘地区列表，等同于ecs_region的region_id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_area_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`region_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’记录表ecs_shipping_area中的shipping_area_name的地区名包括ecs_region中的城市’;
– 表的结构 <span style="color: #ff0000;">`ecs_article`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_article`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`article_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该文章的分类，同ecs_article_cat的cat_id<span style="color: #66cc66;">,</span>如果不在，将自动成为保留类型而不能删除’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`title`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘文章题目’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`content`</span> longtext <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘文章内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`author`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘文章作者’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`author_email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘文章作者的email’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`keywords`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘文章的关键字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`article_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">2</span>′ COMMENT ‘文章类型，<span style="color: #cc66cc;">0</span>，普通；<span style="color: #cc66cc;">1</span>，置顶；<span style="color: #cc66cc;">2</span>和大于<span style="color: #cc66cc;">2</span>的，为保留文章，保留文章不能删除’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_open`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘是否显示。<span style="color: #cc66cc;">1</span>，显示；<span style="color: #cc66cc;">0</span>，不显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘文章添加时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`file_url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘上传文件或者外部文件的url’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`open_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>正常；当该字段为<span style="color: #cc66cc;">1</span>或者<span style="color: #cc66cc;">2</span>时，会在文章最后添加一个链接“相关下载”，连接地址等于file_url的值；但程序在此处有bug’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该文章标题所引用的连接，如果该项有值将不能显示文章内容，即该表中content的值’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`article_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`cat_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’文章内容表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">11</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_article_cat`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_article_cat`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘分类名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘分类类型；<span style="color: #cc66cc;">1</span>，普通分类；<span style="color: #cc66cc;">2</span>，系统分类；<span style="color: #cc66cc;">3</span>，网店信息；<span style="color: #cc66cc;">4</span>，帮助分类；<span style="color: #cc66cc;">5</span>，网店帮助’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`keywords`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘分类关键字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘分类说明文字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘分类显示顺序’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`show_in_nav`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否在导航栏显示；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘父节点id，取值于该表cat_id字段’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`cat_type`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_type`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`sort_order`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`sort_order`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’文章分类信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">7</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_attribute`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_attribute`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`attr_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品类型，同ecs_goods_type的cat_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘属性名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_input_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘当添加商品时，该属性的添加类别；<span style="color: #cc66cc;">0</span>，为手工输入；<span style="color: #cc66cc;">1</span>，为选择输入；<span style="color: #cc66cc;">2</span>，为多行文本输入’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘属性是否多选；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是；如果可以多选，则可以自定义属性，并且可以根据值的不同定不同的价’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_values`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果attr_input_type为<span style="color: #cc66cc;">1</span>，即选择输入，则attr_name对应的值的取值就是该字段的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_index`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘属性是否可以检索；<span style="color: #cc66cc;">0</span>，不需要检索；<span style="color: #cc66cc;">1</span>，关键字检索；<span style="color: #cc66cc;">2</span>，范围检索；该属性应该是如果检索的话，可以通过该属性找到有该属性的商品’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘属性显示的顺序，数字越大越靠前，如果数字一样则按id顺序’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_linked`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否关联；<span style="color: #cc66cc;">0</span>，不关联；<span style="color: #cc66cc;">1</span>，关联；如果关联，那么用户在购买该商品时，具有有该属性相同值的商品将被推荐给用户’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_group`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘属性分组，相同的为一个属性组。该值应该取自ecs_goods_type的attr_group的值的顺序’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`attr_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`cat_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品类型属性表，该表记录的是每个商品类型的所有属性的配置情况，具体的商品的属性不在该表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">175</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_auction_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_auction_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘拍卖活动的id，取值于ecs_goods_activity的act_id字段’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bid_user`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘出价的用户id，取值于ecs_users的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bid_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘出价价格’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bid_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘出价时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`act_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`act_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’拍卖出价记录信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_auto_manage`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_auto_manage`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`item_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果是商品就是ecs_goods的goods_id，如果是文章就是ecs_article的article_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘goods是商品，article是文章’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`starttime`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘上线时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`endtime`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘下线时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`item_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`type`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’处理文章，商品自动上下线的计划任务列表；需要安装计划任务插件才有效’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_bonus_type`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_bonus_type`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`type_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘红包类型流水号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘红包名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘红包所值的金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`send_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包发送类型<span style="color: #66cc66;">.</span>0<span style="color: #66cc66;">,</span>按用户如会员等级<span style="color: #66cc66;">,</span>会员名称发放;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span>按商品类别发送;<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span>按订单金额所达到的额度发送;<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span>线下发送’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`min_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘如果是按金额发送红包<span style="color: #66cc66;">,</span>该项是最小金额<span style="color: #66cc66;">.</span>即只要购买超过该金额的商品都可以领到红包’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`max_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`send_start_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包发送的开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`send_end_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包发送的结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`use_start_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包可以使用的开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`use_end_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包可以使用的结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`min_goods_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘可以使用该红包的商品的最低价格<span style="color: #66cc66;">.</span>即只要达到该价格的商品才可以使用红包’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`type_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’红包类型表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">6</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_booking_goods`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_booking_goods`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`rec_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘登记该缺货记录的用户的id，取值ecs_users的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面填的用户的email，默认取值于ecs_users的email’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_man`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面填的用户的姓名，默认取值于ecs_users的consignee ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`tel`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面填的用户的电话，默认取值于ecs_users的tel’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘缺货登记的商品id，取值于ecs_goods的 goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘缺货登记时留的订购描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_number`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订购数量’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`booking_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘缺货登记的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_dispose`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否已经被处理’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`dispose_user`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘处理该缺货登记的管理员用户名，取值于session<span style="color: #66cc66;">,</span>该session取值于ecs_admin_user的user_name’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`dispose_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘处理的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`dispose_note`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘处理时管理员留的备注’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`rec_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’缺货登记的订购和处理记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">4</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_brand`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_brand`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`brand_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`brand_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘品牌名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`brand_logo`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">80</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘上传的该品牌公司logo图片’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`brand_desc`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘品牌描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`site_url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘品牌的网址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘品牌在前台页面的显示顺序，数字越大越靠后’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_show`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘该品牌是否显示，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，显示’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`brand_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`is_show`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`is_show`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品品牌信息记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">9</span> ;
– 表的结构 <span style="color: #ff0000;">`ecs_card`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_card`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`card_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘贺卡名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_img`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘贺卡图纸的名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_fee`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘贺卡所需费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`free_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘订单达到该字段的值后使用此贺卡免费’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘贺卡的描述’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`card_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’贺卡的配置的信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span> ;
– —————————————————–
– 表的结构 <span style="color: #ff0000;">`ecs_cart`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_cart`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`rec_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户登录id，取自session，’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`session_id`</span> char<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> utf8 COLLATE utf8_bin <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘登录的sessionid，如果该用户退出，该sessionid对应的购物车中的所有记录都将被删除’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品的id，取自表goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_sn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的货号，取自表goods的goods_sn’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的名称，取自表goods的goods_name’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`market_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘商品的市场价，取自表goods的market_price’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘商品的本店价，取自表goods的shop_price’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_number`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品的购买数量，在购物车时，实际库存不减少’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_attr`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的属性，中括号里是该属性特有的价格’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_real`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘取自ecs_goods的is_real’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`extension_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的扩展属性，取自ecs_goods的extension_code’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该商品的父商品id，没有该值为<span style="color: #cc66cc;">0</span>，有的话那该商品就是该id的配件’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`rec_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘购物车商品类型，<span style="color: #cc66cc;">0</span>，普通；<span style="color: #cc66cc;">1</span>，团够；<span style="color: #cc66cc;">2</span>，拍卖；<span style="color: #cc66cc;">3</span>，夺宝奇兵’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_gift`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否是赠品，<span style="color: #cc66cc;">0</span>，否；其他，是参加优惠活动的id，取值于ecs_favourable_activity 的act_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`can_handsel`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_attr_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该商品的属性的id，取自goods_attr的goods_attr_id，如果有多个，只记录了最后一个，可能是个bug’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`rec_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`session_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`session_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’购物车购物信息记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">82</span> ;
– —————————————————–
– 表的结构 <span style="color: #ff0000;">`ecs_category`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_category`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘分类名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`keywords`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘分类的关键字，可能是为了搜索’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘分类描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该分类的父id，取值于该表的cat_id字段’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该分类在页面显示的顺序，数字越大顺序越靠后；同数字，id在前的先显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`template_file`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘不确定字段，按名字和表设计猜，应该是该分类的单独模板文件的名字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`measure_unit`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该分类的计量单位’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`show_in_nav`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否显示在导航栏，<span style="color: #cc66cc;">0</span>，不；<span style="color: #cc66cc;">1</span>，显示在导航栏’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`style`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该分类的单独的样式表的包括文件名部分的文件路径’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_show`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘是否在前台页面显示，<span style="color: #cc66cc;">1</span>，显示；<span style="color: #cc66cc;">0</span>，不显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`grade`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该分类的最高和最低价之间的价格分级，当大于<span style="color: #cc66cc;">1</span>时，会根据最大最小价格区间分成区间，会在页面显示价格范围，如<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">-</span><span style="color: #cc66cc;">300</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">300</span><span style="color: #66cc66;">-</span><span style="color: #cc66cc;">600</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">600</span><span style="color: #66cc66;">-</span><span style="color: #cc66cc;">900</span>这种’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`filter_attr`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘如果该字段有值，则该分类将还会按照该值对应在表goods_attr的goods_attr_id所对应的属性筛选，如，封面颜色下有红，黑分类筛选 ‘<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品分类表，记录商品分类信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">9</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_collect_goods`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_collect_goods`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`rec_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘收藏记录的自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该条收藏记录的会员id，取值于ecs_users的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收藏的商品id，取值于ecs_goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收藏时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_attention`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否关注该收藏商品，<span style="color: #cc66cc;">1</span>，是；<span style="color: #cc66cc;">0</span>，否’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`rec_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`is_attention`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`is_attention`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’会员收藏商品的记录列表，一条记录一个收藏商品’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_comment`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_comment`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`comment_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘用户评论的自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`comment_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户评论的类型；<span style="color: #cc66cc;">0</span>，评论的是商品；<span style="color: #cc66cc;">1</span>，评论的是文章’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`id_value`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘文章或者商品的id，文章对应的是ecs_article 的article_id；商品对应的是ecs_goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘评论时提交的email地址，默认取的ecs_users的email’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘评论该文章或商品的人的名称，取值ecs_users的user_name’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`content`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘评论的内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`comment_rank`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该文章或者商品的星级；只有<span style="color: #cc66cc;">1</span>到<span style="color: #cc66cc;">5</span>星；由数字代替；其中<span style="color: #cc66cc;">5</span>是代表<span style="color: #cc66cc;">5</span>星’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘评论的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ip_address`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘评论时的用户ip’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否被管理员批准显示，<span style="color: #cc66cc;">1</span>，是；<span style="color: #cc66cc;">0</span>，未批准显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘评论的父节点；取值该表的comment_id字段；如果该字段为<span style="color: #cc66cc;">0</span>，则是一个普通评论，否则该条评论就是该字段的值所对应的评论的回复’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘发表该评论的用户的用户id，取值于ecs_users的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`comment_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`id_value`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id_value`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’用户对文章和产品的评论列表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– 表的结构 <span style="color: #ff0000;">`ecs_crons`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_crons`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`cron_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cron_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该插件文件在相应路径下的不包括”<span style="color: #66cc66;">.</span>php”部分的文件名，运行该插件将通过该字段的值寻找将运行的文件’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cron_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘计划任务的名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cron_desc`</span> text COMMENT ‘计划人物的描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cron_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘应该是用了设置计划任务执行的顺序的，即当同时触发<span style="color: #cc66cc;">2</span>个任务时先执行哪一个，如果一样应该是id在前的先执行暂不确定’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cron_config`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘对每次处理的数据的数量的值，类型，名称序列化；比如删几天的日志，每次执行几个商品或文章的处理’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`thistime`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该计划任务上次被执行的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`nextime`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该计划任务下次被执行的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`day`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果该字段有值，则计划任务将在每月的这一天执行该计划人物’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`week`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果该字段有值，则计划任务将在每周的这一天执行该计划人物’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`hour`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果该字段有值，则该计划任务将在每天的这个小时段执行该计划任务’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`minute`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果该字段有值，则该计划任务将在每小时的这个分钟段执行该计划任务，该字段的值可以多个，用空格间隔’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`enable`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘该计划任务是否开启；<span style="color: #cc66cc;">0</span>，关闭；<span style="color: #cc66cc;">1</span>，开启’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`run_once`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘执行后是否关闭，这个关闭的意思还得再研究下’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`allow_ip`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘允许运行该计划人物的服务器ip’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`alow_files`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘运行触发该计划人物的文件列表可多个值，为空代表所有许可的文件都可以’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cron_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`nextime`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`nextime`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`enable`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`enable`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`cron_code`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cron_code`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’计划任务插件安装配置信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">4</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_email_list`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_email_list`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘邮件订阅的自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘邮件订阅所填的邮箱地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`stat`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否确认，可以用户确认也可以管理员确认；<span style="color: #cc66cc;">0</span>，未确认；<span style="color: #cc66cc;">1</span>，已确认’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`hash`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘邮箱确认的验证码，系统生成后发送到用户邮箱，用户验证激活时通过该值判断是否合法；主要用来防止非法验证邮箱’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’增加电子杂志订阅表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_email_sendlist`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_email_sendlist`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘邮件发送队列自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该邮件将要发送到的邮箱地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`template_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该邮件的模板id，取值于ecs_mail_templates的template_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email_content`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘邮件发送的内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`error`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘错误次数，不知干什么用的，猜应该是发送邮件的失败记录’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pri`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该邮件发送的优先级；<span style="color: #cc66cc;">0</span>，普通；<span style="color: #cc66cc;">1</span>，高’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_send`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘上一次发送的时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’增加发送队列表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">18</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_error_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_error_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘计划任务错误自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`info`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘错误详细信息’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`file`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘产生错误的执行文件的绝对路径’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘错误发生的时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`time`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`time`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’该表用来记录页面触发计划任务时失败所产生的错误，从程序来看，目前主要是记录某计划任务所对应的插件文件不存在的错误’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_favourable_activity`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_favourable_activity`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`act_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘优惠活动的自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘优惠活动的活动名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`start_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘活动的开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`end_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘活动的结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_rank`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘可以参加活动的用户信息，取值于ecs_user_rank的rank_id；其中<span style="color: #cc66cc;">0</span>是非会员，其他是相应的会员等级；多个值用逗号分隔’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_range`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘优惠范围；<span style="color: #cc66cc;">0</span>，全部商品；<span style="color: #cc66cc;">1</span>，按分类；<span style="color: #cc66cc;">2</span>，按品牌；<span style="color: #cc66cc;">3</span>，按商品’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_range_ext`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘根据优惠活动范围的不同，该处意义不同；但是都是优惠范围的约束；如，如果是商品，该处是商品的id，如果是品牌，该处是品牌的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`min_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘订单达到金额下限，才参加活动’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`max_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘参加活动的订单金额下限，<span style="color: #cc66cc;">0</span>，表示没有上限’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘参加活动的优惠方式；<span style="color: #cc66cc;">0</span>，送赠品或优惠购买；<span style="color: #cc66cc;">1</span>，现金减免；价格打折优惠’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_type_ext`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果是送赠品，该处是允许的最大数量，<span style="color: #cc66cc;">0</span>，无数量限制；现今减免，则是减免金额，单位元；打折，是折扣值，<span style="color: #cc66cc;">100</span>算，<span style="color: #cc66cc;">8</span>折就是<span style="color: #cc66cc;">80</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`gift`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘如果有特惠商品，这里是序列化后的特惠商品的id<span style="color: #66cc66;">,</span>name<span style="color: #66cc66;">,</span>price信息;取值于ecs_goods的goods_id，goods_name，价格是添加活动时填写的’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘活动在优惠活动页面显示的先后顺序，数字越大越靠后’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`act_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`act_name`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`act_name`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’优惠活动的配置信息，优惠活动包括送礼，减免，打折’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_feedback`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_feedback`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`msg_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘反馈信息自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘父节点，取自该表msg_id；反馈该值为<span style="color: #cc66cc;">0</span>；回复反馈为节点id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘反馈的用户的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘反馈的用户的用户名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘反馈的用户的邮箱’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`msg_title`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘反馈的标题，回复为reply’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`msg_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘反馈的类型，<span style="color: #cc66cc;">0</span>，留言；<span style="color: #cc66cc;">1</span>，投诉；<span style="color: #cc66cc;">2</span>，询问；<span style="color: #cc66cc;">3</span>，售后；<span style="color: #cc66cc;">4</span>，求购’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`msg_content`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘反馈的内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`msg_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘反馈的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`message_img`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户上传的文件的地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该反馈关联的订单id，由用户提交，取值于 ecs_order_info的order_id；<span style="color: #cc66cc;">0</span>，为无匹配；’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`msg_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’用户反馈信息表，包括留言，投诉，咨询等’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">7</span> ;
– ——————————————————
&nbsp;
– 表的结构 <span style="color: #ff0000;">`ecs_friend_link`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_friend_link`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`link_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘友情链接自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘友情链接的名称，img的alt的内容;’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘友情链接网站的链接地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_logo`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘友情链接的logo’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`show_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘在页面的显示顺序’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`link_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`show_order`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`show_order`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’友情链接配置信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘商品的自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品所属商品分类id，取值ecs_category的cat_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_sn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的唯一货号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_name_style`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #66cc66;">+</span>’ COMMENT ‘商品名称显示的样式；包括颜色和字体样式；格式如#ff00ff<span style="color: #66cc66;">+</span>strong’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`click_count`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品点击数’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`brand_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘品牌id，取值于ecs_brand 的brand_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`provider_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘供货人的名称，程序还没实现该功能’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_number`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品库存数量’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_weight`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.000</span>′ COMMENT ‘商品的重量，以千克为单位’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`market_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘市场售价’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shop_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘本店售价’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`promote_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘促销价格’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`promote_start_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘促销价格开始日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`promote_end_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘促销价结束日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`warn_number`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘商品报警数量’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`keywords`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品关键字，放在商品页的关键字中，为搜索引擎收录用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_brief`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的简短描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_desc`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的详细描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_thumb`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品在前台显示的微缩图片，如在分类筛选时显示的小图片’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_img`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的实际大小图片，如进入该商品页时介绍商品属性所显示的大图片’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`original_img`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘应该是上传的商品的原始图片’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_real`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘是否是实物，<span style="color: #cc66cc;">1</span>，是；<span style="color: #cc66cc;">0</span>，否；比如虚拟卡就为<span style="color: #cc66cc;">0</span>，不是实物’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`extension_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的扩展属性，比如像虚拟卡’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_on_sale`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘该商品是否开放销售，<span style="color: #cc66cc;">1</span>，是；<span style="color: #cc66cc;">0</span>，否’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_alone_sale`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘是否能单独销售，<span style="color: #cc66cc;">1</span>，是；<span style="color: #cc66cc;">0</span>，否；如果不能单独销售，则只能作为某商品的配件或者赠品销售’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`integral`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘购买该商品可以使用的积分数量，估计应该是用积分代替金额消费；但程序好像还没有实现该功能’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品的添加时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘应该是商品的显示顺序，不过该版程序中没实现该功能’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_delete`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品是否已经删除，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，已删除’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_best`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否是精品；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_new`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否是新品；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_hot`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否热销，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_promote`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否特价促销；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bonus_type_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘购买该商品所能领到的红包类型’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_update`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘最近一次更新商品配置的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_type`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品所属类型id，取值表goods_type的cat_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`seller_note`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的商家备注，仅商家可见’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`give_integral`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>′ COMMENT ‘购买该商品时每笔成功交易赠送的积分数量。’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_sn`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_sn`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`cat_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`last_update`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`last_update`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`brand_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`brand_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_weight`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_weight`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`promote_end_date`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`promote_end_date`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`promote_start_date`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`promote_start_date`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_number`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_number`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">35</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods_activity`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods_activity`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`act_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘促销活动的名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_desc`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘促销活动的描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`act_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘参加活动的id，取值于ecs_goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的名称，取值于ecs_goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`start_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘活动开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`end_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘活动结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_finished`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘活动是否结束，<span style="color: #cc66cc;">0</span>，结束；<span style="color: #cc66cc;">1</span>，未结束’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ext_info`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘序列化后的促销活动的配置信息，包括最低价，最高价，出价幅度，保证金等’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`act_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`act_name`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`act_name`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`act_type`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’拍卖活动和夺宝奇兵活动配置信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods_article`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods_article`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品id，取自ecs_goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`article_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘文章id，取自 ecs_article 的article_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`admin_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘猜想是管理员的id，但是程序中似乎没有提及到’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`article_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`admin_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’文章关联产品表，即文章中提到的相关产品’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods_attr`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods_attr`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`goods_attr_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该具体属性属于的商品，取值于ecs_goods的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该具体属性属于的属性类型的id，取自ecs_attribute 的attr_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_value`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该具体属性的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_price`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该属性对应在商品原价格上要加的价格’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_attr_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`attr_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`attr_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’具体商品的属性表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">62</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods_cat`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods_cat`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品分类id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’商品的扩展分类’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods_gallery`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods_gallery`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`img_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘商品相册自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘图片属于商品的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`img_url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘实际图片url’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`img_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘图片说明信息’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`thumb_url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘微缩图片url’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`img_original`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘根据名字猜，应该是上传的图片文件的最原始的文件的url’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`img_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品相册表，只出现在页面的商品相册中’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">23</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_goods_type`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_goods_type`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`cat_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cat_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品类型名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`enabled`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘类型状态，<span style="color: #cc66cc;">1</span>，为可用；<span style="color: #cc66cc;">0</span>为不可用；不可用的类型，在添加商品的时候选择商品属性将不可选’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`attr_group`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品属性分组，将一个商品类型的属性分成组，在显示的时候也是按组显示。该字段的值显示在属性的前一行，像标题的作用’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`cat_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品类型表，该表每条记录就是一个商品类型’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">10</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_group_goods`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_group_goods`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`parent_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘父商品id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘配件商品id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘配件商品的价格’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`admin_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘添加该配件的管理员的id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`admin_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’该表应该是商品配件配置表’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_keywords`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_keywords`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`date`</span> date <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘0000<span style="color: #66cc66;">-</span>00<span style="color: #66cc66;">-</span>00′ COMMENT ‘搜索日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`searchengine`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘搜索引擎，默认是ecshop’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`keyword`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘搜索关键字，即用户填写的搜索内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`count`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘搜索次数，按天累加’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`date`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`searchengine`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`keyword`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’页面搜索关键字搜索记录’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_link_goods`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_link_goods`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`link_goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘被关联的商品的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_double`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否是双向关联；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`admin_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘添加此关联商品信息的管理员id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`link_goods_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`admin_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’关联商品信息表，关联商品是什么意思还没研究明白’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_mail_templates`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_mail_templates`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`template_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘邮件模板自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`template_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘模板字符串名称，主要用于插件言语包时匹配语言包文件等用途’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_html`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘邮件是否是html格式；<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`template_subject`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该邮件模板的邮件主题’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`template_content`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘邮件模板的内容’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_modify`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘最后一次修改模板的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_send`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘最近一次发送的时间，好像仅在杂志才记录’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该邮件模板的邮件类型；共<span style="color: #cc66cc;">2</span>个类型；magazine，杂志订阅；template，关注订阅’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`template_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">UNIQUE</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`template_code`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`template_code`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`type`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`type`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’各种邮件的模板配置模板包括杂志模板’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">13</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_member_price`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_member_price`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`price_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘折扣价自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_rank`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘会员登记id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘指定商品对指定会员等级的固定定价价格，单位元’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`price_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`user_rank`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’商品不按照会员的折扣定价，而是再单独为不同的会员等级定的价；’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_nav`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_nav`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘导航配置自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ctype`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`cid`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘导航显示标题’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ifshow`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘是否显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`vieworder`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面显示顺序，数字越大越靠后’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`opennew`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘导航链接页面是否在新窗口打开，<span style="color: #cc66cc;">1</span>，是；其他，否’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘链接的页面地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘处于导航栏的位置，top为顶部；middle为中间；bottom<span style="color: #66cc66;">,</span>为底部’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`type`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`type`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`ifshow`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`ifshow`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’上中下<span style="color: #cc66cc;">3</span>个导航栏的显示配置’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">17</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_order_action`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_order_action`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`action_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘流水号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘被操作的交易号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`action_user`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘操作该次的人员’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘作何操作<span style="color: #66cc66;">.</span>0，未确认；<span style="color: #cc66cc;">1</span>，已确认；<span style="color: #cc66cc;">2</span>，已取消；<span style="color: #cc66cc;">3</span>，无效；<span style="color: #cc66cc;">4</span>，退货；’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘发货状态。<span style="color: #cc66cc;">0</span>，未发货；<span style="color: #cc66cc;">1</span>，已发货；<span style="color: #cc66cc;">2</span>，已收货；<span style="color: #cc66cc;">3</span>，备货中’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘支付状态<span style="color: #66cc66;">.</span>0<span style="color: #66cc66;">,</span>未付款;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span>付款中;<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span>已付款;’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`action_note`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘操作备注’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`log_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘操作时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`action_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`order_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`order_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’对订单操作日志表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">18</span> ;
– ——————————————————
&nbsp;
– 表的结构 <span style="color: #ff0000;">`ecs_order_goods`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_order_goods`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`rec_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘订单商品信息自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单商品信息对应的详细信息id，取值order_info的order_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品的的id，取值表ecs_goods 的goods_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的名称，取值表ecs_goods ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_sn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的唯一货号，取值ecs_goods ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_number`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘商品的购买数量’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`market_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘商品的市场售价，取值ecs_goods ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘商品的本店售价，取值ecs_goods ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_attr`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘购买该商品时所选择的属性；’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`send_number`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘当不是实物时，是否已发货，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_real`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否是实物，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是；取值ecs_goods ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`extension_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品的扩展属性，比如像虚拟卡。取值ecs_goods ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘父商品id，取值于ecs_cart的parent_id；如果有该值则是值多代表的物品的配件’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_gift`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否参加优惠活动，<span style="color: #cc66cc;">0</span>，否；其他，取值于ecs_cart 的is_gift，跟其一样，是参加的优惠活动的id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`rec_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`order_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`order_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’订单的商品信息，注：订单的商品信息基本都是从购物车所对应的表中取来的。’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">27</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_order_info`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_order_info`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`order_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘订单详细信息自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_sn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘订单号，唯一’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户id，同ecs_users的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单状态。<span style="color: #cc66cc;">0</span>，未确认；<span style="color: #cc66cc;">1</span>，已确认；<span style="color: #cc66cc;">2</span>，已取消；<span style="color: #cc66cc;">3</span>，无效；<span style="color: #cc66cc;">4</span>，退货；’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品配送情况，<span style="color: #cc66cc;">0</span>，未发货；<span style="color: #cc66cc;">1</span>，已发货；<span style="color: #cc66cc;">2</span>，已收货；<span style="color: #cc66cc;">3</span>，备货中’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_status`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘支付状态；<span style="color: #cc66cc;">0</span>，未付款；<span style="color: #cc66cc;">1</span>，付款中；<span style="color: #cc66cc;">2</span>，已付款’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`consignee`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的姓名，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`country`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的国家，用户页面填写，默认取值于表user_address，其id对应的值在ecs_region’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`province`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的省份，用户页面填写，默认取值于表user_address，其id对应的值在ecs_region’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`city`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的城市，用户页面填写，默认取值于表user_address，其id对应的值在ecs_region’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`district`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的地区，用户页面填写，默认取值于表user_address，其id对应的值在ecs_region’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`address`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的详细地址，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`zipcode`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的邮编，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`tel`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的电话，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`mobile`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的手机，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的手机，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`best_time`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的最佳送货时间，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sign_building`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的地址的标志性建筑，用户页面填写，默认取值于表user_address’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`postscript`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘订单附言，由用户提交订单前填写’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户选择的配送方式id，取值表ecs_shipping’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户选择的配送方式的名称，取值表ecs_shipping’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户选择的支付方式的id，取值表ecs_payment’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户选择的支付方式的名称，取值表ecs_payment’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`how_oos`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘缺货处理方式，等待所有商品备齐后再发； 取消订单；与店主协商’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`how_surplus`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘根据字段猜测应该是余额处理方式，程序未作这部分实现’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘包装名称，取值表ecs_pack’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘贺卡的名称，取值ecs_card ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_message`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘贺卡内容，由用户提交’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`inv_payee`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘发票抬头，用户页面填写’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`inv_content`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘发票内容，用户页面选择，取值ecs_shop_config的code字段的值为invoice_content的value’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘商品总金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_fee`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘配送费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`insure_fee`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘保价费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_fee`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘支付费用<span style="color: #66cc66;">,</span>跟支付方式的配置相关，取值表ecs_payment’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_fee`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘包装费用，取值表取值表ecs_pack’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_fee`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘贺卡费用，取值ecs_card ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`money_paid`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘已付款金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`surplus`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘该订单使用余额的数量，取用户设定余额，用户可用余额，订单金额中最小者’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`integral`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘使用的积分的数量，取用户使用积分，商品可用积分，用户拥有积分中最小者’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`integral_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘使用积分金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bonus`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘使用红包金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘应付款金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`from_ad`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单由某广告带来的广告id，应该取值于ecs_ad’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`referer`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘订单的来源页面’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单生成时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`confirm_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单确认时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单支付时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单配送时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘包装id，取值取值表ecs_pack’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘贺卡id，用户在页面选择，取值取值ecs_card ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bonus_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包的id，ecs_user_bonus的bonus_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`invoice_no`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘发货单号，发货时填写，可在订单查询查看’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`extension_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘通过活动购买的商品的代号；GROUP_BUY是团购；AUCTION，是拍卖；SNATCH，夺宝奇兵；正常普通产品该处为空’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`extension_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘通过活动购买的物品的id，取值ecs_goods_activity；如果是正常普通商品，该处为<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`to_buyer`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商家给客户的留言<span style="color: #66cc66;">,</span>当该字段有值时可以在订单查询看到’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_note`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘付款备注，在订单管理里编辑修改’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`agency_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该笔订单被指派给的办事处的id，根据订单内容和办事处负责范围自动决定，也可以有管理员修改，取值于表ecs_agency’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`inv_type`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘发票类型，用户页面选择，取值ecs_shop_config的code字段的值为invoice_type的value’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`tax`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘发票税额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_separate`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘<span style="color: #cc66cc;">0</span>，未分成或等待分成；<span style="color: #cc66cc;">1</span>，已分成；<span style="color: #cc66cc;">2</span>，取消分成；’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘能获得推荐分成的用户id，id取值于表ecs_users’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`discount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘折扣金额’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`order_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">UNIQUE</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`order_sn`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`order_sn`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`order_status`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`order_status`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`shipping_status`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_status`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`pay_status`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`pay_status`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`shipping_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`pay_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`pay_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`extension_code`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`extension_code`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`extension_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`agency_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`agency_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’订单的配送，贺卡等详细信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">24</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_pack`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_pack`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`pack_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘包装配置的自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘包装的名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_img`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘包装图纸’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_fee`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘包装的费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`free_money`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘订单达到此金额可以免除该包装费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pack_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘包装描述’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`pack_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品包装信息配置表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_payment`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_payment`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`pay_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘已安装的支付方式自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘支付方式的英文缩写，其实就是该支付方式处理插件的不带后缀的文件名部分’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘支付方式名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_fee`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘支付费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_desc`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘支付方式描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘支付方式在页面的显示顺序’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_config`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘支付方式的配置信息，包括商户号和密钥什么的’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`enabled`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否可用，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_cod`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否货到付款，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_online`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否在线支付，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`pay_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">UNIQUE</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`pay_code`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`pay_code`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’安装的支付方式配置信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">7</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_pay_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_pay_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘支付记录自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘对应的交易记录的id，取值表ecs_order_info ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘支付金额’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘支付类型；<span style="color: #cc66cc;">0</span>，订单支付；<span style="color: #cc66cc;">1</span>，会员预付款支付’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_paid`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否已支付，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’系统支付记录’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">28</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_plugins`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_plugins`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ”<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`version`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ”<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`library`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ”<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`assign`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`install_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`code`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_region`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_region`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`region_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘表示该地区的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该地区的上一个节点的地区id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`region_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘地区的名字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`region_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">2</span>′ COMMENT ‘该地区的下一个节点的地区id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`agency_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘办事处的id<span style="color: #66cc66;">,</span>这里有一个bug<span style="color: #66cc66;">,</span>同一个省不能有多个办事处<span style="color: #66cc66;">,</span>该字段只记录最新的那个办事处的id’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`region_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`region_type`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`region_type`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`agency_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`agency_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’地区列表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">419</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_searchengine`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_searchengine`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`date`</span> date <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘0000<span style="color: #66cc66;">-</span>00<span style="color: #66cc66;">-</span>00′ COMMENT ‘搜索引擎访问日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`searchengine`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘搜索引擎名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`count`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘访问次数’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`date`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`searchengine`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’搜索引擎访问记录’;
– ——————————————————
&nbsp;
– 表的结构 <span style="color: #ff0000;">`ecs_sessions`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_sessions`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`sesskey`</span> char<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> utf8 COLLATE utf8_bin <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ’sessionid<span style="color: #66cc66;">,</span>’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`expiry`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ’session创建时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`userid`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘如果不是管理员，记录用户id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`adminid`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘如果是管理员记录管理员id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ip`</span> char<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘客户端ip’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`data`</span> char<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘序列化后的session数据，如果session数据大于<span style="color: #cc66cc;">255</span>则将数据存到表ecs_sessions_data，此处为空’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`sesskey`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`expiry`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`expiry`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MEMORY <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’session记录表’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_sessions_data`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_sessions_data`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`sesskey`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> utf8 COLLATE utf8_bin <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ’sessionid’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`expiry`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ’session创建时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`data`</span> longtext <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ’session序列化后的数据’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`sesskey`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`expiry`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`expiry`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’session数据表（超过<span style="color: #cc66cc;">255</span>字节的session内容会保存在该表）’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_shipping`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_shipping`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`shipping_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘配送方式的字符串代号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘配送方式的名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_desc`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘配送方式的描述’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`insure`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘保价费用，单位元，或者是百分数，该值直接输出为报价费用’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`support_cod`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否支持货到付款，<span style="color: #cc66cc;">1</span>，支持；<span style="color: #cc66cc;">0</span>，不支持’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`enabled`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该配送方式是否被禁用，<span style="color: #cc66cc;">1</span>，可用；<span style="color: #cc66cc;">0</span>，禁用’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`shipping_code`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_code`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`enabled`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’配送方式配置信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">9</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_shipping_area`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_shipping_area`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`shipping_area_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_area_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘配送方式中的配送区域的名字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`shipping_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该配送区域所属的配送方式，同ecs_shipping的shipping_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`configure`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘序列化的该配送区域的费用配置信息’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_area_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`shipping_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`shipping_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’配送方式所属的配送区域和配送费用信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">9</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_shop_config`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_shop_config`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘全站配置信息自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘父节点id，取值于该表id字段的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`code`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘跟变量名的作用差不多，其实就是语言包中的字符串索引，如$_LANG<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">''</span>cfg_range<span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">''</span>cart_confirm<span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#93;</span>‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该配置的类型，text，文本输入框；password，密码输入框；textarea，文本区域；<span style="color: #993333; font-weight: bold;">select</span>，单选；options，循环生成多选；file<span style="color: #66cc66;">,</span>文件上传；manual，手动生成多选；<span style="color: #993333; font-weight: bold;">group</span>，是标题分组；hidden，不在页面显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`store_range`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘当语言包中的code字段对应的是一个数组时，那该处就是该数组的索引，如$_LANG<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">''</span>cfg_range<span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">''</span>cart_confirm<span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>；只有type字段为<span style="color: #993333; font-weight: bold;">select</span><span style="color: #66cc66;">,</span>options时才有值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`store_dir`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘当type为file时才有值，文件上传后的保存目录’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`value`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该项配置的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘显示顺序，数字越大越靠后’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">UNIQUE</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`code`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`code`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’全站配置信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">903</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_snatch_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_snatch_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`snatch_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘夺宝奇兵活动号，取值于ecs_goods_activity的act_id字段’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘出价的用户id，取值于ecs_users的user_id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bid_price`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘出价的价格’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bid_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘出价的时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`snatch_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`snatch_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>FIXED COMMENT<span style="color: #66cc66;">=</span>’夺宝奇兵出价记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_stats`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_stats`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`access_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘访问时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ip_address`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘访问者ip’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`visit_times`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘访问次数，如果之前有过访问次数，在以前的基础上＋<span style="color: #cc66cc;">1</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`browser`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘浏览器及版本’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`system`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘操作系统’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`language`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘语言’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`area`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘ip所在地区’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`referer_domain`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面访问来源域名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`referer_path`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘页面访问来源除域名外的路径部分’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`access_url`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘访问页面文件名’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`access_time`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`access_time`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’访问信息记录表’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_tag`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_tag`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`tag_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘商品标签自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘商品的id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`tag_words`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘标签内容’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`tag_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’商品的标记’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_template`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_template`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`filename`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该条模板配置属于哪个模板页面’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`region`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该条模板配置在它所属的模板文件中的位置’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`library`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该条模板配置在它所属的模板文件中的位置处应该引入的lib的相对目录地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sort_order`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘模板文件中这个位置的引入lib项的值的显示顺序’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘字段意义待查’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`number`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">5</span>′ COMMENT ‘每次显示多少个值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘属于哪个动态项，<span style="color: #cc66cc;">0</span>，固定项；<span style="color: #cc66cc;">1</span>，分类下的商品；<span style="color: #cc66cc;">2</span>，品牌下的商品；<span style="color: #cc66cc;">3</span>，文章列表；<span style="color: #cc66cc;">4</span>，广告位 ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`theme`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘该模板配置项属于哪套模板的模板名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`remarks`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘备注，可能是预留字段，没有值所以没确定用途’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`filename`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`filename`</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">`region`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`theme`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`theme`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`remarks`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`remarks`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’模板设置数据表’;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_topic`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_topic`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`topic_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘专题自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`title`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ””” COMMENT ‘专题名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`intro`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘专题介绍’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`start_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘专题开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`end_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`data`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘专题数据内容，包括分类，商品等’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`template`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ””” COMMENT ‘专题模板文件’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`css`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘专题样式代码’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`topic_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`topic_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’专题活动配置表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_users`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_users`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘会员资料自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘会员邮箱’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`password`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户密码’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`question`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘安全问题答案’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`answer`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘安全问题’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sex`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘性别，<span style="color: #cc66cc;">0</span>，保密；<span style="color: #cc66cc;">1</span>，男；<span style="color: #cc66cc;">2</span>，女’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`birthday`</span> date <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘0000<span style="color: #66cc66;">-</span>00<span style="color: #66cc66;">-</span>00′ COMMENT ‘生日日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘用户现有资金’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`frozen_money`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0.00</span>′ COMMENT ‘用户冻结资金’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`pay_points`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘消费积分’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`rank_points`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘会员等级积分’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`address_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货信息id，取值表ecs_user_address ‘<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`reg_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘注册时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_login`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘最后一次登录时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_time`</span> datetime <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘0000<span style="color: #66cc66;">-</span>00<span style="color: #66cc66;">-</span>00 00:00:00′ COMMENT ‘应该是最后一次修改信息时间，该表信息从其他表同步过来考虑’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`last_ip`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘最后一次登录ip’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`visit_count`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘登录次数’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_rank`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘会员登记id，取值ecs_user_rank’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_special`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`salt`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`parent_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">9</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘推荐人会员id，’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`flag`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`alias`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘昵称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`msn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘msn’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`qq`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘qq号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`office_phone`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘办公电话’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`home_phone`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘家庭电话’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`mobile_phone`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘手机’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_validated`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`credit_line`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘信用额度，目前2<span style="color: #66cc66;">.</span>6<span style="color: #66cc66;">.</span>0版好像没有作实现’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">UNIQUE</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_name`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_name`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`email`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`email`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`parent_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`parent_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`flag`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`flag`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">21</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_user_account`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_user_account`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘自增ID号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户登录后保存在session中的id号，跟users表中的user_id对应’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`admin_user`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘操作该笔交易的管理员的用户名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`amount`</span> decimal<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘资金的数目，正数为增加，负数为减少’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘记录插入时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`paid_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘记录更新时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`admin_note`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘管理员的被准’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_note`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘用户的被准’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`process_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘操作类型，<span style="color: #cc66cc;">1</span>，退款；<span style="color: #cc66cc;">0</span>，预付费，其实就是充值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`payment`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘支付渠道的名称，取自payment的pay_name字段’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_paid`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否已经付款，０，未付；１，已付’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`is_paid`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`is_paid`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’用户资金流动表，包括提现和充值’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">7</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_user_address`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_user_address`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`address_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`address_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘用户表中的流水号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`consignee`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的名字’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的email’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`country`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的国家’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`province`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的省份’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`city`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的城市’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`district`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘收货人的地区’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`address`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的详细地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`zipcode`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的邮编’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`tel`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的电话’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`mobile`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的手机’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`sign_building`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货地址的标志性建筑名’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`best_time`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘收货人的最佳收货时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`address_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’收货人的信息表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">4</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_user_bonus`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_user_bonus`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`bonus_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘红包的流水号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bonus_type_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包发送类型<span style="color: #66cc66;">.</span>0<span style="color: #66cc66;">,</span>按用户如会员等级<span style="color: #66cc66;">,</span>会员名称发放;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span>按商品类别发送;<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span>按订单金额所达到的额度发送;<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span>线下发送’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`bonus_sn`</span> bigint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包号<span style="color: #66cc66;">,</span>如果为<span style="color: #cc66cc;">0</span>就是没有红包号<span style="color: #66cc66;">.</span>如果大于<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>就需要输入该红包号才能使用红包’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该红包属于某会员的id<span style="color: #66cc66;">.</span>如果为<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>就是该红包不属于某会员’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`used_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘红包使用的时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘使用了该红包的交易号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`emailed`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘猜的，应该是是否已经将红包发送到用户的邮箱；<span style="color: #cc66cc;">1</span>，是；<span style="color: #cc66cc;">0</span>，否；’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`bonus_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`user_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`user_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 COMMENT<span style="color: #66cc66;">=</span>’已经发送的红包信息列表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">122</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_user_feed`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_user_feed`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`feed_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`value_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`feed_type`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_feed`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`feed_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_user_rank`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_user_rank`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`rank_id`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘会员等级编号，其中<span style="color: #cc66cc;">0</span>是非会员’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`rank_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘会员等级名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`min_points`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该等级的最低积分’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`max_points`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该等级的最高积分’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`discount`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该会员等级的商品折扣’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`show_price`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">1</span>′ COMMENT ‘是否在不是该等级会员购买页面显示该会员等级的折扣价格<span style="color: #66cc66;">.</span>1<span style="color: #66cc66;">,</span>显示;<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>不显示’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`special_rank`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否事特殊会员等级组<span style="color: #66cc66;">.</span>0<span style="color: #66cc66;">,</span>不是;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span>是’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`rank_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’会员等级配置信息’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
&nbsp;
– 表的结构 <span style="color: #ff0000;">`ecs_virtual_card`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_virtual_card`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`card_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘虚拟卡卡号自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该虚拟卡对应的商品id，取值于表ecs_goods’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_sn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘加密后的卡号’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`card_password`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘加密后的密码’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`add_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘卡号添加日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`end_date`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘卡号截至使用日期’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`is_saled`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘是否卖出，<span style="color: #cc66cc;">0</span>，否；<span style="color: #cc66cc;">1</span>，是’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`order_sn`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘卖出该卡号的交易号，取值表ecs_order_info’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`crc32`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘crc32后的<span style="color: #993333; font-weight: bold;">key</span>’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`card_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`car_sn`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`card_sn`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`is_saled`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`is_saled`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’虚拟卡卡号库’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">8</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_vote`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_vote`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`vote_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘在线调查自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`vote_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">250</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘在线调查主题’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`start_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘在线调查开始时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`end_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘在线调查结束时间’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`can_multi`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘能否多选，<span style="color: #cc66cc;">0</span>，可以；<span style="color: #cc66cc;">1</span>，不可以’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`vote_count`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘投票人数也可以说投票次数’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`vote_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’网站调查信息记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_vote_log`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_vote_log`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`log_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘投票记录自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`vote_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘关联的投票主题id，取值表ecs_vote’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ip_address`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘投票的ip地址’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`vote_time`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘投票的时间’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`log_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`vote_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`vote_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’投票记录表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_vote_option`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_vote_option`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`option_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘投票选项自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`vote_id`</span> smallint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘关联的投票主题id，取值表ecs_vote’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`option_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">250</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘投票选项的值’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`option_count`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> ‘<span style="color: #cc66cc;">0</span>′ COMMENT ‘该选项的票数’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`option_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`vote_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`vote_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’投票的选项内容表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">8</span> ;
– ——————————————————
– 表的结构 <span style="color: #ff0000;">`ecs_wholesale`</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`ecs_wholesale`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`act_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> COMMENT ‘批发方案自增id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_id`</span> mediumint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品id’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`goods_name`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘商品名称’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`rank_ids`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘适用会员登记，多个值之间用逗号分隔，取值于ecs_user_rank’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`prices`</span> text <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘序列化后的商品属性，数量，价格’<span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`enabled`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">unsigned</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT ‘批发方案是否可用’<span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`act_id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #ff0000;">`goods_id`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`goods_id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 ROW_FORMAT<span style="color: #66cc66;">=</span>DYNAMIC COMMENT<span style="color: #66cc66;">=</span>’批发方案表’ <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/ecshop-data-structure-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的vim php 开发配置文件</title>
		<link>http://www.blags.org/my-vim-php-development-profile/</link>
		<comments>http://www.blags.org/my-vim-php-development-profile/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 12:46:26 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[acp]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Php-Doc]]></category>
		<category><![CDATA[TagList]]></category>
		<category><![CDATA[VIM]]></category>

		<guid isPermaLink="false">http://www.blags.org/?p=363</guid>
		<description><![CDATA[有些混乱日后修正：
vim 插件：
NERDTree 树状导航【项目】
TagList 标签
php-doc 注释插件
acp 自动提示插件

View Code PHP&#34; All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
&#34; /usr/share/vim/vimcurrent/debian.vim&#41; and sourced by the call to :runtime
&#34; you can find below.  If you wish to change any of those settings, you should
&#34; do it in this file &#40;/etc/vim/vimrc&#41;, since debian.vim will be overwritten
&#34; everytime an upgrade <a href="http://www.blags.org/my-vim-php-development-profile/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>有些混乱日后修正：<br />
<a href="http://www.blags.org/tags/vim/"title="vim" >vim</a> 插件：</p>
<p>NERDTree 树状导航【项目】</p>
<p>TagList 标签</p>
<p>php-doc 注释插件</p>
<p>acp 自动提示插件</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p363code35'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p36335"><td class="code" id="p363code35"><pre class="php" style="font-family:monospace;"><span style="color: #0000ff;">&quot; All system-wide defaults are set in <span style="color: #006699; font-weight: bold;">$VIMRUNTIME</span>/debian.vim (usually just
&quot;</span> <span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>share<span style="color: #339933;">/</span>vim<span style="color: #339933;">/</span>vimcurrent<span style="color: #339933;">/</span>debian<span style="color: #339933;">.</span>vim<span style="color: #009900;">&#41;</span> and sourced by the call to <span style="color: #339933;">:</span>runtime
<span style="color: #0000ff;">&quot; you can find below.  If you wish to change any of those settings, you should
&quot;</span> <span style="color: #b1b100;">do</span> it in this <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> <span style="color: #009900;">&#40;</span><span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>vim<span style="color: #339933;">/</span>vimrc<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> since debian<span style="color: #339933;">.</span>vim will be overwritten
<span style="color: #0000ff;">&quot; everytime an upgrade of the vim packages is performed.  It is recommended to
&quot;</span> make changes after sourcing debian<span style="color: #339933;">.</span>vim since it alters the value of the
<span style="color: #0000ff;">&quot; 'compatible' option.
&nbsp;
&quot;</span> This line should not be removed <span style="color: #b1b100;">as</span> it ensures that various options are
<span style="color: #0000ff;">&quot; properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim
&nbsp;
&quot;</span> Uncomment the <a href="http://www.php.net/next"><span style="color: #990000;">next</span></a> line to make Vim more Vi<span style="color: #339933;">-</span>compatible
<span style="color: #0000ff;">&quot; NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
&quot;</span> options<span style="color: #339933;">,</span> so any other options should be set AFTER setting <span style="color: #0000ff;">'compatible'</span><span style="color: #339933;">.</span>
<span style="color: #0000ff;">&quot;set compatible
&nbsp;
&quot;</span> Vim5 and later versions support syntax highlighting<span style="color: #339933;">.</span> Uncommenting the
<span style="color: #0000ff;">&quot; following enables syntax highlighting by default.
if has(&quot;</span>syntax<span style="color: #0000ff;">&quot;)
	syntax enable
	syntax on
endif
&nbsp;
&quot;</span> <span style="color: #b1b100;">If</span> using a dark background within the editing area and syntax highlighting
<span style="color: #0000ff;">&quot; turn on this option as well
&quot;</span>set background<span style="color: #339933;">=</span>dark
&nbsp;
<span style="color: #0000ff;">&quot; Uncomment the following to have Vim jump to the last position when
&quot;</span> reopening a <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a>
<span style="color: #0000ff;">&quot;if has(&quot;</span>autocmd<span style="color: #0000ff;">&quot;)
&quot;</span>  au BufReadPost <span style="color: #339933;">*</span> <span style="color: #b1b100;">if</span> line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span> line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;$&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> exe <span style="color: #0000ff;">&quot;normal! g'<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">|</span> <span style="color: #b1b100;">endif</span>
<span style="color: #0000ff;">&quot;endif
&nbsp;
&quot;</span> Uncomment the following to have Vim load indentation rules and plugins
<span style="color: #0000ff;">&quot; according to the detected filetype.
&quot;</span><span style="color: #b1b100;">if</span> has<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;autocmd&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #0000ff;">&quot;  filetype plugin indent on
&quot;</span><span style="color: #b1b100;">endif</span>
&nbsp;
<span style="color: #0000ff;">&quot; The following are commented out as they cause vim to behave a lot
&quot;</span> differently from regular Vi<span style="color: #339933;">.</span> They are highly recommended though<span style="color: #339933;">.</span>
<span style="color: #0000ff;">&quot;set showcmd		&quot;</span> Show <span style="color: #009900;">&#40;</span>partial<span style="color: #009900;">&#41;</span> command in status line<span style="color: #339933;">.</span>
<span style="color: #0000ff;">&quot;set showmatch		&quot;</span> Show matching brackets<span style="color: #339933;">.</span>
<span style="color: #0000ff;">&quot;set ignorecase		&quot;</span> <span style="color: #b1b100;">Do</span> <span style="color: #b1b100;">case</span> insensitive matching
<span style="color: #0000ff;">&quot;set smartcase		&quot;</span> <span style="color: #b1b100;">Do</span> smart <span style="color: #b1b100;">case</span> matching
<span style="color: #0000ff;">&quot;set incsearch		&quot;</span> Incremental search
<span style="color: #0000ff;">&quot;set autowrite		&quot;</span> Automatically save before commands like <span style="color: #339933;">:</span><a href="http://www.php.net/next"><span style="color: #990000;">next</span></a> and <span style="color: #339933;">:</span>make
<span style="color: #0000ff;">&quot;set hidden             &quot;</span> Hide buffers when they are abandoned
<span style="color: #0000ff;">&quot;set mouse=a		&quot;</span> Enable mouse usage <span style="color: #009900;">&#40;</span>all modes<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #0000ff;">&quot; Source a global configuration file if available
if filereadable(&quot;</span><span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>vim<span style="color: #339933;">/</span>vimrc<span style="color: #339933;">.</span>local<span style="color: #0000ff;">&quot;)
  source /etc/vim/vimrc.local
endif
&nbsp;
&quot;</span>You can obtain the completion dictionary <a href="http://www.php.net/file"><span style="color: #990000;">file</span></a> from<span style="color: #339933;">:</span>
<span style="color: #0000ff;">&quot;  http://cvs.php.net/viewvc.cgi/phpdoc/funclist.txt
set dictionary-=<span style="color: #006699; font-weight: bold;">$VIM</span>/funclist.txt dictionary+=<span style="color: #006699; font-weight: bold;">$VIM</span>/funclist.txt
set dictionary-=<span style="color: #006699; font-weight: bold;">$VIM</span>/javascript.txt dictionary+=<span style="color: #006699; font-weight: bold;">$VIM</span>/javascript.txt
set dictionary-=<span style="color: #006699; font-weight: bold;">$VIM</span>/mysql.txt dictionary+=<span style="color: #006699; font-weight: bold;">$VIM</span>/mysql.txt
&nbsp;
&quot;</span><span style="color: #000000; font-weight: bold;">Use</span> the dictionary completion
set complete<span style="color: #339933;">-=</span>k complete<span style="color: #339933;">+=</span>k
&nbsp;
<span style="color: #0000ff;">&quot;Auto completion using the TAB key
&quot;</span>This <span style="color: #000000; font-weight: bold;">function</span> determines<span style="color: #339933;">,</span> wether we are on
<span style="color: #0000ff;">&quot;the start of the line text(then tab indents)
&quot;</span>or <span style="color: #b1b100;">if</span> we want to try auto completion
<span style="color: #000000; font-weight: bold;">function</span><span style="color: #339933;">!</span> InsertTabWrapper<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    let col<span style="color: #339933;">=</span>col<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>
    <span style="color: #b1b100;">if</span> <span style="color: #339933;">!</span>col <span style="color: #339933;">||</span> getline<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>col<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!</span>~ <span style="color: #0000ff;">'\k'</span>
        <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>
    else
        return &quot;</span>\<span style="color: #0000ff;">&quot;
    endif
endfunction
&nbsp;
&quot;</span>Remap the tab <a href="http://www.php.net/key"><span style="color: #990000;">key</span></a> to select action with InsertTabWrapper
inoremap  <span style="color: #339933;">=</span>InsertTabWrapper<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #0000ff;">&quot;let g:SuperTabRetainCompletionType=2
&quot;</span>let g<span style="color: #339933;">:</span>SuperTabDefaultCompletionType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span>
&nbsp;
<span style="color: #0000ff;">&quot;记录光标位置
&quot;</span>au BufReadPost <span style="color: #339933;">*</span> <span style="color: #b1b100;">if</span> line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">|</span>if line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span> line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;$&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>exe<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;norm '<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>else<span style="color: #339933;">|</span>exe <span style="color: #0000ff;">&quot;norm $&quot;</span><span style="color: #339933;">|</span>endif<span style="color: #339933;">|</span>endif
&nbsp;
<span style="color: #0000ff;">&quot;let g:winManagerWindowLayout='FileExplorer|TagList'
&quot;</span>nmap wm <span style="color: #339933;">:</span>WMToggle
&nbsp;
<span style="color: #0000ff;">&quot;输入法
let g:vimim_www_sogou = 1
let g:vimim_custom_lcursor_color=1
&nbsp;
&quot;</span>字体
<span style="color: #0000ff;">&quot;set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
&quot;</span>set gfw<span style="color: #339933;">=</span>Yahei_Mono<span style="color: #339933;">:</span>h10<span style="color: #339933;">.</span>5<span style="color: #339933;">:</span>cGB2312
&nbsp;
<span style="color: #0000ff;">&quot;检测文件类型
filetype on
&nbsp;
&quot;</span>快速打开文件
<span style="color: #0000ff;">&quot;map ^O :browse confirm e^M
&quot;</span>快速创建新文件
<span style="color: #0000ff;">&quot;map ^N :confirm enew^M
&nbsp;
&quot;</span><span style="color: #339933;">---------------</span>javascript<span style="color: #339933;">------------------</span>
<span style="color: #0000ff;">&quot;autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
&quot;</span>let b<span style="color: #339933;">:</span>javascript_fold<span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span>
<span style="color: #0000ff;">&quot;let javascript_enable_domhtmlcss=1
&quot;</span>设置javascriptlint
&nbsp;
<span style="color: #0000ff;">&quot;---------------javascript------------------
&quot;</span>配色
<span style="color: #0000ff;">&quot; Avoid clearing hilight definition in plugins
if !exists(&quot;</span>g<span style="color: #339933;">:</span>vimrc_loaded<span style="color: #0000ff;">&quot;)
   if has(&quot;</span>gui_running<span style="color: #0000ff;">&quot;)
      set guioptions-=T &quot;</span>隐藏工具栏
   <span style="color: #b1b100;">else</span>
      colorscheme desertEx
   <span style="color: #b1b100;">endif</span> <span style="color: #0000ff;">&quot; has
endif &quot;</span> exists<span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span>
<span style="color: #0000ff;">&quot;set background=dark
&nbsp;
&quot;</span>显示行号
<span style="color: #0000ff;">&quot;set nummber
set nu
&nbsp;
&quot;</span>代码折叠
set fdm<span style="color: #339933;">=</span>indent
&nbsp;
<span style="color: #0000ff;">&quot; 设置编码
set enc=utf-8
&quot;</span> 设置文件编码
set fenc<span style="color: #339933;">=</span>utf<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>
<span style="color: #0000ff;">&quot; 设置文件编码检测类型及支持格式
set fencs=ucs-bom,utf-8,chinese
&nbsp;
&quot;</span>缩进相关
set cindent
set cinoptions<span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>1s<span style="color: #339933;">,</span>t0<span style="color: #339933;">,</span>n<span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span>p2s<span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span>03s<span style="color: #339933;">,=.</span>5s<span style="color: #339933;">,&amp;</span>gt<span style="color: #339933;">;</span>1s<span style="color: #339933;">,=</span>1s<span style="color: #339933;">,:</span>1s
set shiftwidth<span style="color: #339933;">=</span><span style="color: #cc66cc;">4</span>
set tabstop<span style="color: #339933;">=</span><span style="color: #cc66cc;">4</span>
set softtabstop<span style="color: #339933;">=</span><span style="color: #cc66cc;">4</span>
<span style="color: #0000ff;">&quot; ambiwidth 默认值为 single。在其值为 single 时，
&quot;</span> 若 encoding 为 utf<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>，gvim 显示全角符号时就会
<span style="color: #0000ff;">&quot; 出问题，会当作半角显示。
set ambiwidth=double
set autoread                &quot;</span> 自动重新加载外部修改内容
set autochdir               <span style="color: #0000ff;">&quot; 自动切换当前目录为当前文件所在的目录
&nbsp;
&quot;</span>No bell settings <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>
set noerrorbells
set visualbell
&nbsp;
<span style="color: #0000ff;">&quot;No bell settings End }}}
&nbsp;
&quot;</span>在编辑过程中，在右下角显示光标位置的状态行
<span style="color: #0000ff;">&quot;set ruler
&quot;</span>set nolinebreak             <span style="color: #0000ff;">&quot; 在单词中间断行
&quot;</span> 在状态栏显示目前所执行的指令，未完成的指令片段亦
<span style="color: #0000ff;">&quot; 会显示出来
&quot;</span>set showcmd       
&nbsp;
set wrap                    <span style="color: #0000ff;">&quot; 自动换行显示
&quot;</span>CmdLine settings <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>
set cmdheight<span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span>             <span style="color: #0000ff;">&quot; 设定命令行的行数为 1
set laststatus=2            &quot;</span> 显示状态栏 <span style="color: #009900;">&#40;</span>默认值为 <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> 无法显示状态栏<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #0000ff;">&quot;
&quot;</span>显示匹配括号
set showmatch
&nbsp;
<span style="color: #0000ff;">&quot;自动缩排
set ai
&nbsp;
&quot;</span>搜索不分大小写
set ic
&nbsp;
<span style="color: #0000ff;">&quot;标识关键字
set hls
&nbsp;
&quot;</span> Line highlight 設此是游標整行會標註顏色
<span style="color: #0000ff;">&quot;set cursorline
&quot;</span> Column highlight 設此是遊標整列會標註顏色 横向
<span style="color: #0000ff;">&quot;set cursorcolumn
&quot;</span>highlight CursorLine cterm<span style="color: #339933;">=</span>none ctermbg<span style="color: #339933;">=</span><span style="color: #cc66cc;">2</span> ctermfg<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span> 
&nbsp;
<span style="color: #0000ff;">&quot;智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
&quot;</span>highlight Pmenu ctermbg<span style="color: #339933;">=</span><span style="color: #cc66cc;">13</span> guibg<span style="color: #339933;">=</span>LightGray
<span style="color: #0000ff;">&quot;highlight PmenuSel ctermbg=7 guibg=DarkBlue guifg=White
&quot;</span>highlight PmenuSbar ctermbg<span style="color: #339933;">=</span><span style="color: #cc66cc;">7</span> guibg<span style="color: #339933;">=</span>DarkGray
highlight PmenuThumb guibg<span style="color: #339933;">=</span>Black
<span style="color: #0000ff;">&quot;打开自己工程的时候自动加载的脚本
if getfsize(&quot;</span><span style="color: #339933;">.</span>vimscript<span style="color: #0000ff;">&quot;)&amp;gt;0
   source .vimscript
endif
&nbsp;
&quot;</span><span style="color: #339933;">------------------------</span>php<span style="color: #339933;">----------------------------</span>
<span style="color: #0000ff;">&quot; 设置注释
vmap  :call EnhancedCommentify('yes','comment',line(&quot;</span><span style="color: #0000ff;">'&amp;lt;&quot;),line(&quot;'</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;))
&quot;</span> 取消注释
vmap  <span style="color: #339933;">:</span>call EnhancedCommentify<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'yes'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'decomment'</span><span style="color: #339933;">,</span>line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'&amp;lt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'&amp;gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #0000ff;">&quot; I use a back background in my editors
&quot;</span>set background<span style="color: #339933;">=</span>dark
<span style="color: #0000ff;">&quot; I like highlighted search results
&quot;</span>set hlsearch
<span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #000000; font-weight: bold;">Use</span> incremental searching
<span style="color: #0000ff;">&quot;set incsearch
&quot;</span><span style="color: #0000ff;">&quot; Set standard setting for PEAR coding standards
&quot;</span>set tabstop<span style="color: #339933;">=</span><span style="color: #cc66cc;">4</span>
<span style="color: #0000ff;">&quot;set shiftwidth=4
&quot;</span><span style="color: #0000ff;">&quot; Auto expand tabs to spaces
&quot;</span>set expandtab
<span style="color: #0000ff;">&quot;&quot;</span> Auto indent after a <span style="color: #009900;">&#123;</span>
<span style="color: #0000ff;">&quot;set autoindent
&quot;</span>set smartindent
<span style="color: #0000ff;">&quot;&quot;</span> Linewidth to endless
<span style="color: #0000ff;">&quot;set textwidth=0
&quot;</span>
<span style="color: #0000ff;">&quot;&quot;</span> Jump <span style="color: #cc66cc;">5</span> lines when running out of the screen
<span style="color: #0000ff;">&quot;set scrolljump=5
&quot;</span><span style="color: #0000ff;">&quot; Indicate jump out of the screen when 3 lines before end of the screen
&quot;</span>set scrolloff<span style="color: #339933;">=</span><span style="color: #cc66cc;">3</span>
<span style="color: #0000ff;">&quot;&quot;</span> Repair wired terminal<span style="color: #339933;">/</span>vim settings
<span style="color: #0000ff;">&quot;set backspace=start,eol
&quot;</span> Map <span style="color: #339933;">-</span>B to run PHP parser check
noremap  <span style="color: #339933;">:!</span>php <span style="color: #339933;">-</span>l <span style="color: #339933;">%</span>
<span style="color: #0000ff;">&quot; Remap the tab key to select action with InsertTabWrapper
inoremap  =InsertTabWrapper()
&nbsp;
&quot;</span>set <a href="http://www.php.net/list"><span style="color: #990000;">list</span></a>
<span style="color: #0000ff;">&quot; set listchars=tab:&amp;gt;-,trail:-,eol:$
set ignorecase                  &quot;</span> caseinsensitive searches
set showmode                    <span style="color: #0000ff;">&quot; always show command or insert mode
set ruler                      &quot;</span> show line and column information
set showmatch                  <span style="color: #0000ff;">&quot; show matching brackets
set formatoptions=tcqor
set whichwrap=b,s,&amp;lt;,&amp;gt;,[,]
&quot;</span><span style="color: #339933;">------------------------</span>php<span style="color: #339933;">----------------------------</span>
&nbsp;
<span style="color: #0000ff;">&quot;------------------------自定义快捷键-----------------------------
&quot;</span>前一个文件后一个文件
map  <span style="color: #339933;">:</span>bn
map  <span style="color: #339933;">:</span>bp
map  <span style="color: #339933;">:</span>w
map  <span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">new</span>
map  <span style="color: #339933;">:</span>u
map  <span style="color: #339933;">:</span>ggVG
<span style="color: #0000ff;">&quot;自定义
&quot;</span>inoremap <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #0000ff;">&quot;i
&quot;</span>inoremap <span style="color: #0000ff;">' '</span><span style="color: #0000ff;">'i
&quot;inoremap [ []i
&quot;inoremap { {}i
&quot;inoremap ` ``i
&quot;inoremap &amp;lt; &amp;lt;&amp;gt;i
&quot;inoremap / /**/i
&nbsp;
&quot;启动gVIM时最大化
set columns=1024
set lines=768
&nbsp;
&quot; Rename.vim  -  Rename a buffer within Vim and on the disk
&quot; Copyright June 2007 by Christian J. Robinson
&quot; Distributed under the terms of the Vim license.  See &quot;:help license&quot;.
&quot; Usage:
&quot; :Rename[!] {newname}
command! -nargs=* -complete=file -bang Rename :call Rename(&quot;&quot;, &quot;&quot;)
function! Rename(name, bang)
	let l:curfile = expand(&quot;%:p&quot;)
	let v:errmsg = &quot;&quot;
	silent! exe &quot;saveas&quot; . a:bang . &quot; &quot; . a:name
	if v:errmsg =~# '</span>^$\<span style="color: #339933;">|</span>^E329<span style="color: #0000ff;">'ings {{{
set cmdheight=1             &quot; 设定命令行的行数为 1
set laststatus=2            &quot; 显示状态栏 (默认值为 1, 无法显示状态栏)
&nbsp;
&quot;
&nbsp;
		if expand(&quot;%:p&quot;) !=# l:curfile &amp;amp;&amp;amp; filewritable(expand(&quot;%:p&quot;))
			silent exe &quot;bwipe! &quot; . l:curfile
			if delete(l:curfile)
				echoerr &quot;Could not delete &quot; . l:curfile
			endif
		endif
	else
		echoerr v:errmsg
	endif
endfunction
&nbsp;
&quot;php-doc
inoremap  :call PhpDocClass()
nnoremap  :call PhpDocClass()
vnoremap  :call PhpDocClass() 
&nbsp;
&quot;颜色设定
colorscheme blackdust&quot;desert
&quot;字体
set guifont=Monaco\ 10</span></pre></td></tr></table></div>

<p>效果图：<br />
<a href="http://www.blags.org/wp-content/Upload/gvim.png"><img class="aligncenter size-medium wp-image-482" title="gvim" src="http://www.blags.org/wp-content/Upload/gvim-300x162.png" alt="gvim 效果图" width="300" height="162" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/my-vim-php-development-profile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP中多服务器共享SESSION的方法</title>
		<link>http://www.blags.org/php-multiple-servers-to-share-session/</link>
		<comments>http://www.blags.org/php-multiple-servers-to-share-session/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 04:48:27 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.blags.cn/?p=306</guid>
		<description><![CDATA[在PHP中SESSION默认是用文件来进行保存的，如session.save_path=/tmp,则是将session数据保存在/tmp目 录下，如果并发用户量很大，在这个目录下就会存在大量类似sess_xxxxxx的session文件,导致性能下降，不少朋友可能都没有注意到 php.ini里面Session设置部分中有这样一项：
; session.save_path = &#8220;N; MODE; /path&#8221;
这项设置提供给我们可以给session存放目录进行多级散列，其中“N”表示要设置的目录级数，“MODE”表示目录的权限属性，默认为600，在WINDOWS上基本是不用设置的，*NIX上也可以不用设置，后面的“/path”表示session文件存放的根目录路径，比如我们设置为下面的格式
session.save_path = &#8220;2; d:/php5/tmp&#8221;
上面的设置表示我们把d:/php5/tmp目录作为php的session文件存放根目录，在该目录下进行两级目录散列，每一级目录分别是 0-9和a-z共36个字母数字为目录名，这样存放session的目录可以达到36*36个，相信作为单台服务器来说，这是完全够用了，如果说您的系统 架构设计为多台服务器共享session数据，可以把目录级增加到3级或者更多。
需要注意的是，php自己并不会自动创建子目录，需要您自己动手去创建，网上找到这样的自动创建目录的代码，大家可以做个参考。下面的代码自动创建3级子目录，可以自己动手根据需要进行修改。
set_time_limit(0);
$string = &#8216;0123456789abcdefghijklmnopqrstuvwxyz&#8217;;
$length = strlen($string);
function makeDir($param)
{
if(!file_exists($param)) {
makeDir(dirname($param));
mkdir($param);
}
}
for($i = 0; $i &#60; $length; $i++) {
for($j = 0; $j &#60; $length; $j++) {
for($k = 0; $k &#60; $length; $k++) {
makeDir($string[$i].&#8217;/&#8217;.$string[$j].&#8217;/&#8217;.$string[$k]);
}
}
}
?&#62;
多服务器共享session的方法：
1.通过NFS文件共享的方式，多台WEB服务器共享保存session文件的磁盘
2.保存在数据库中，这种方式的扩展性很强，可以随意增加WEB而不受影响
3.可以将session数据保存在memcached中，memcached是基于内存存储数据的，性能很高，用户并发量很大的时候尤其合适，参考PHP实现多服务器session共享之memcache共享
4.文件方式保存session时，可以采用php的扩展eaccelerator来存储sesion,参考
eaccelerator 应用之“使用共享内存存储Session”
]]></description>
			<content:encoded><![CDATA[<p>在PHP中SESSION默认是用文件来进行保存的，如session.save_path=/tmp,则是将session数据保存在/tmp目 录下，如果并发用户量很大，在这个目录下就会存在大量类似sess_xxxxxx的session文件,导致性能下降，不少朋友可能都没有注意到 php.ini里面Session设置部分中有这样一项：</p>
<p>; session.save_path = &#8220;N; MODE; /path&#8221;</p>
<p>这项设置提供给我们可以给session存放目录进行多级散列，其中“N”表示要设置的目录级数，“MODE”表示目录的权限属性，默认为600，在WINDOWS上基本是不用设置的，*NIX上也可以不用设置，后面的“/path”表示session文件存放的根目录路径，比如我们设置为下面的格式</p>
<p>session.save_path = &#8220;2; d:/php5/tmp&#8221;</p>
<p>上面的设置表示我们把d:/php5/tmp目录作为php的session文件存放根目录，在该目录下进行两级目录散列，每一级目录分别是 0-9和a-z共36个字母数字为目录名，这样存放session的目录可以达到36*36个，相信作为单台服务器来说，这是完全够用了，如果说您的系统 架构设计为多台服务器共享session数据，可以把目录级增加到3级或者更多。</p>
<p>需要注意的是，php自己并不会自动创建子目录，需要您自己动手去创建，网上找到这样的自动创建目录的代码，大家可以做个参考。下面的代码自动创建3级子目录，可以自己动手根据需要进行修改。</p>
<p>set_time_limit(0);<br />
$string = &#8216;0123456789abcdefghijklmnopqrstuvwxyz&#8217;;<br />
$length = strlen($string);<br />
function makeDir($param)<br />
{<br />
if(!file_exists($param)) {<br />
makeDir(dirname($param));<br />
mkdir($param);<br />
}<br />
}<br />
for($i = 0; $i &lt; $length; $i++) {<br />
for($j = 0; $j &lt; $length; $j++) {<br />
for($k = 0; $k &lt; $length; $k++) {<br />
makeDir($string[$i].&#8217;/&#8217;.$string[$j].&#8217;/&#8217;.$string[$k]);<br />
}<br />
}<br />
}<br />
?&gt;<br />
多服务器共享session的方法：</p>
<p>1.通过NFS文件共享的方式，多台WEB服务器共享保存session文件的磁盘</p>
<p>2.保存在数据库中，这种方式的扩展性很强，可以随意增加WEB而不受影响</p>
<p>3.可以将session数据保存在memcached中，memcached是基于内存存储数据的，性能很高，用户并发量很大的时候尤其合适，参考PHP实现多服务器session共享之memcache共享</p>
<p>4.文件方式保存session时，可以采用php的扩展eaccelerator来存储sesion,参考</p>
<p>eaccelerator 应用之“使用共享内存存储Session”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-multiple-servers-to-share-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP面向对象技术OOP(全面讲解)、概念开始</title>
		<link>http://www.blags.org/php-oop-introduction/</link>
		<comments>http://www.blags.org/php-oop-introduction/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 12:19:57 +0000</pubDate>
		<dc:creator>马丁博客</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://www.blags.cn/?p=267</guid>
		<description><![CDATA[1.面向对象的概念
面向对象编程（Object Oriented Programming, OOP, 面向对象程序设计）是一种计算机编程架构，OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成，OOP达到了软件工程的三个目标：重用性、灵活性和扩展性。为了实现整体运算，每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象一直是软件开发领域内比较热门的话题，首先，面向对象符合人类看待事物的一般规律。其次，采用面向对象方法可以使系统各部分各司其职、各尽所能。为编程人员敞开了一扇大门，使其编程的代码更简洁、更易于维护，并且具有更强的可重用性。有人说PHP不是一个真正的面向对象的语言，这是事实。PHP 是一个混合型语言，你可以使用OOP，也可以使用传统的过程化编程。然而，对于大型项目，你可能需要在PHP 中使用纯的OOP去声明类，而且在你的项目里只用对象和类。这个概念我先不多说了，因为有很多朋友远离面向对象编程的主要原因就是一接触面向对象概念的时候就理解不上去， 所以就不想去学下去了。等读者看完整体内容后再去把概念搞明白吧。
2.什么是类，什么是对象，类和对象这间的关系
类的概念：类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述，其内部包括属性和服务两个主要部分。在面向对象的编程语言中，类是一个独立的程序单位，它应该有一个类名并包括属性说明和服务说明两个主要部分。
对象的概念：对象是系统中用来描述客观事物的一个实体，它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说，对象是问题域或实现域中某些事物的一个抽象，它反映该事物在系统中需要保存的信息和发挥的作用；它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。
类与对象的关系就如模具和铸件的关系，类的实例化结果就是对象，而对一类对象的抽象就是类。类描述了一组有相同特性（属性）和相同行为（方法）的对象。
上面大概就是它们的定义吧，也许你是刚接触面向对象的朋友，不要被概念的东西搞晕了，给你举个例子吧，如果你去中关村想买几台组装的PC机，到了那里你第一步要干什么，是不是装机的工程师和你坐在一起，按你提供的信息和你一起完成一个装机的配置单呀，这个配置单就可以想象成是类，它就是一张纸，但是它上面记录了你要买的PC机的信息，如果用这个配置单买10台机器，那么这10台机子，都是按这个配置单组成的，所以说这10台机子是一个类型的，也可以说是一类的。那么什么是对象呢，类的实例化结果就是对象,用这个配置单配置出来（实例化出来）的机子就是对象，是我们可以操作的实体，10台机子，10个对象。每台机子都是独立的，只能说明他们是同一类的，对其中一个机做任何动作都不会影响其它9台机器，但是我对类修改，也就是在这个配置单上加一个或少一个配件，那么装出来的9个机子都改变了，这是类和对象的关系(类的实例化结果就是对象)。
3.什么是面向对象编程呢？
就不说他的概念，如果你想建立一个电脑教室，首先要有一个房间， 房间里面要有N台电脑，有N张桌子， N把椅子， 白板，投影机等等，这些是什么，刚才咱们说了， 这就是对象，能看到的一个个的实体，可以说这个电脑教室的单位就是这一个个的实体对象，它们共同组成了这个电脑教室，那么我们是做程序，这和面向对象有什么关系呢？开发一个系统程序和建一个电脑教室类似，你把每个独立的功能模块抽象成类，形成对象，由多个对象组成这个系统，这些对象之间都能够接收信息、处理数据和向其它对象发送信息等等相互作用。就构成了面向对象的程序。
]]></description>
			<content:encoded><![CDATA[<p>1.面向对象的概念</p>
<p>面向对象编程（Object Oriented Programming, OOP, 面向对象程序设计）是一种计算机编程架构，OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成，OOP达到了软件工程的三个目标：重用性、灵活性和扩展性。为了实现整体运算，每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象一直是软件开发领域内比较热门的话题，首先，面向对象符合人类看待事物的一般规律。其次，采用面向对象方法可以使系统各部分各司其职、各尽所能。为编程人员敞开了一扇大门，使其编程的代码更简洁、更易于维护，并且具有更强的可重用性。有人说PHP不是一个真正的面向对象的语言，这是事实。PHP 是一个混合型语言，你可以使用OOP，也可以使用传统的过程化编程。然而，对于大型项目，你可能需要在PHP 中使用纯的OOP去声明类，而且在你的项目里只用对象和类。这个概念我先不多说了，因为有很多朋友远离面向对象编程的主要原因就是一接触面向对象概念的时候就理解不上去， 所以就不想去学下去了。等读者看完整体内容后再去把概念搞明白吧。</p>
<p>2.什么是类，什么是对象，类和对象这间的关系</p>
<p>类的概念：类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述，其内部包括属性和服务两个主要部分。在面向对象的编程语言中，类是一个独立的程序单位，它应该有一个类名并包括属性说明和服务说明两个主要部分。</p>
<p>对象的概念：对象是系统中用来描述客观事物的一个实体，它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说，对象是问题域或实现域中某些事物的一个抽象，它反映该事物在系统中需要保存的信息和发挥的作用；它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。</p>
<p>类与对象的关系就如模具和铸件的关系，类的实例化结果就是对象，而对一类对象的抽象就是类。类描述了一组有相同特性（属性）和相同行为（方法）的对象。</p>
<p>上面大概就是它们的定义吧，也许你是刚接触面向对象的朋友，不要被概念的东西搞晕了，给你举个例子吧，如果你去中关村想买几台组装的PC机，到了那里你第一步要干什么，是不是装机的工程师和你坐在一起，按你提供的信息和你一起完成一个装机的配置单呀，这个配置单就可以想象成是类，它就是一张纸，但是它上面记录了你要买的PC机的信息，如果用这个配置单买10台机器，那么这10台机子，都是按这个配置单组成的，所以说这10台机子是一个类型的，也可以说是一类的。那么什么是对象呢，类的实例化结果就是对象,用这个配置单配置出来（实例化出来）的机子就是对象，是我们可以操作的实体，10台机子，10个对象。每台机子都是独立的，只能说明他们是同一类的，对其中一个机做任何动作都不会影响其它9台机器，但是我对类修改，也就是在这个配置单上加一个或少一个配件，那么装出来的9个机子都改变了，这是类和对象的关系(类的实例化结果就是对象)。</p>
<p>3.什么是面向对象编程呢？</p>
<p>就不说他的概念，如果你想建立一个电脑教室，首先要有一个房间， 房间里面要有N台电脑，有N张桌子， N把椅子， 白板，投影机等等，这些是什么，刚才咱们说了， 这就是对象，能看到的一个个的实体，可以说这个电脑教室的单位就是这一个个的实体对象，它们共同组成了这个电脑教室，那么我们是做程序，这和面向对象有什么关系呢？开发一个系统程序和建一个电脑教室类似，你把每个独立的功能模块抽象成类，形成对象，由多个对象组成这个系统，这些对象之间都能够接收信息、处理数据和向其它对象发送信息等等相互作用。就构成了面向对象的程序。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blags.org/php-oop-introduction/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

