<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[高一鹏的博客]]></title> 
<link>http://www.gaoolp.com/</link> 
<description><![CDATA[高一鹏的个人博客]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[高一鹏的博客]]></copyright>
<item>
<link>http://www.gaoolp.com/read.php/321.htm</link>
<title><![CDATA[jQuery的弹出窗口插件colorbox ]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[web技术]]></category>
<pubDate>Sat, 31 Mar 2012 13:51:50 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/321.htm</guid> 
<description>
<![CDATA[ 
	<p>官方网站：<a href="http://colorpowered.com/colorbox/">http://colorpowered.com/colorbox/</a></p> <p></p> <li>支持 照片，照片组，幻灯片，ajax，内联 和 iframe 框架。&nbsp;&nbsp;</li><li>通过CSS 控制外观，使用用户可以很容易重新定制外观。&nbsp;&nbsp;</li><li>不需要更改 ColorBox 的 javascript 文件就可以重新设定其行为。&nbsp;&nbsp;</li><li>可以依靠 callback &amp; event-hooks 进行拓展，不需要修改源代码。&nbsp;&nbsp;</li><li>非常友好，不需要修改现有的 HTML，所有的选项都通过 JS 设置。&nbsp;&nbsp;<p></p> <p>介绍</p> <div class="info"> <p>colorbox()函数使用一堆key/value对象和一个可选的callback函数</p> <p class="code">格式：$('selector').colorbox(&#123;key:value&#125;, callback);</p> <p class="code">例子： $('a.gallery').colorbox(&#123;transition:'fade', speed:500&#125;);</p> <p class="code">还是例子：$('button').colorbox(&#123;href:&quot;thankyou.html&quot;&#125;);</p> <p></p> <table border="0" class="FCK__ShowTableBorders"> <tbody> <tr> <th> <p></p> <p>设置的值</p></th> <th> <p></p> <p>默认值</p></th> <th> <p></p> <p>介绍</p></th></tr> <tr style="background-color: #f9f9f9"> <td> <p>transition</p></td> <td>&quot;elastic&quot;</td> <td> <p>过渡效果，可以是&quot;elastic&quot;, &quot;fade&quot;, or &quot;none&quot;.</p></td></tr> <tr> <td> <p>speed</p></td> <td>350</td> <td> <p>设置过渡效果的持续时间，毫秒</p></td></tr> <tr style="background-color: #f9f9f9"> <td>href</td> <td>false</td> <td> <p>Example:<span class="code"><span style="color: #000000">$('h1').colorbox(&#123;href:&quot;welcome.html&quot;&#125;)</span></span></p> <p><span class="code"><span style="color: #000000; background-color: #ffffff">这个用来设置一个锚标记的值或者一个不是锚的元素，例如图像或者表单的按钮，例如：</span></span></p></td></tr> <tr> <td>title</td> <td>false</td> <td> <p>这可以为Colorbox设置一个标题</p></td></tr> <tr style="background-color: #f9f9f9"> <td>rel</td> <td>false</td> <td> <p>Example:<span class="code"><span style="color: #000000">$('#example&nbsp;&nbsp;a').colorbox(&#123;rel:'group1'&#125;)</span></span></p> <p><span class="code"><span style="color: #000000">这个可以根据元素的rel属性设置要显示的元素集合，也可以覆盖一个存在的rel属性</span></span></p></td></tr> <tr> <td>width</td> <td>false</td> <td> <p>Example: &quot;100%&quot;, &quot;500px&quot;, or 500</p> <p>设置宽度，包括边框和按钮</p></td></tr> <tr style="background-color: #f9f9f9"> <td>height</td> <td>false</td> <td> <p> Example: &quot;100%&quot;, &quot;500px&quot;, or 500</p> <p>设置高度，包括边框和按钮</p></td></tr> <tr> <td>innerWidth</td> <td>false</td> <td> <p>Example: &quot;50%&quot;, &quot;500px&quot;, or 500</p> <p>这个可以设定一个固定的内大小，包括边框和按钮</p></td></tr> <tr style="background-color: #f9f9f9"> <td>innerHeight</td> <td>false</td> <td> <p>Example: &quot;50%&quot;, &quot;500px&quot;, or 500</p> <p>这个可以设定一个固定的内高度，包括边框和按钮</p></td></tr> <tr> <td>initialWidth</td> <td>300</td> <td> <p>设置初始化宽度</p></td></tr> <tr style="background-color: #f9f9f9"> <td>initialHeight</td> <td>100</td> <td> <p>设置初始化高度</p></td></tr> <tr> <td>maxWidth</td> <td>false</td> <td> <p> Example: &quot;100%&quot;, 500, &quot;500px&quot;</p> <p>设置内容的最大宽度</p></td></tr> <tr style="background-color: #f9f9f9"> <td>maxHeight</td> <td>false</td> <td> <p>Example: &quot;100%&quot;, 500, &quot;500px&quot;</p> <p>设置内容的最大高度</p></td></tr> <tr> <td>scalePhotos</td> <td>true</td> <td> <p>如果是true且maxWidth, maxHeight, innerWidth, innerHeight, width, 或者 height&nbsp;&nbsp;被设置，</p> <p>Colorbox会缩放图片以使用边框</p></td></tr> <tr style="background-color: #f9f9f9"> <td>scrolling</td> <td>true</td> <td> <p>如果是false,Colorbox不会为了溢出元素设置滚动条</p></td></tr> <tr> <td>iframe</td> <td>false</td> <td> <p>如果是true，元素会在Iframe中显示</p></td></tr> <tr style="background-color: #f9f9f9"> <td>inline</td> <td>false</td> <td> <p>Example: <span class="code"><span style="color: #000000">$(&quot;#inline&quot;).colorbox(&#123;inline:true,&nbsp;&nbsp;href:&quot;#myForm&quot;&#125;);</span></span></p> <p><span class="code"><span style="color: #000000">如果是true,jQuery选择器可以用来选择要显示的元素。例如：</span></span></p></td></tr> <tr> <td>html</td> <td>false</td> <td> <p>Example: <br /><span class="code"><span style="color: #000000">$.fn.colorbox(&#123;html:'&nbsp;&nbsp;</span></span></p><p>Hello</p>'&#125;);&nbsp;&nbsp;<p><span class="code"><span style="color: #000000">这个是直接让你显示HTML代码，例</span></span></p> <p></p></td></tr> <tr style="background-color: #f9f9f9"> <td>photo</td> <td>false</td> <td> <p>如果为true，ColorBox只会把元素按照图片显示，防止类似photo.php?pic=1这样的连接被误认为是网页</p></td></tr> <tr> <td>opacity</td> <td>0.85</td> <td> <p>遮罩层不透明度 从0-1之间取值</p></td></tr> <tr style="background-color: #f9f9f9"> <td>open</td> <td>false</td> <td> <p>如果为true,ColorBox会自动开启</p></td></tr> <tr> <td>preloading</td> <td>true</td> <td> <p>如果为True,ColorBox会自动预载要显示图片</p></td></tr> <tr style="background-color: #f9f9f9"> <td>overlayClose</td> <td>true</td> <td> <p>为true单击遮罩层就可以把ColorBox关闭</p></td></tr> <tr> <td>slideshow</td> <td>false</td> <td> <p>为True，会自动滚动图片</p></td></tr> <tr style="background-color: #f9f9f9"> <td>slideshowSpeed</td> <td>2500</td> <td> <p>设置时间，毫秒</p></td></tr> <tr> <td>slideshowAuto</td> <td>true</td> <td> <p>为tuue，滑动会自动开始</p></td></tr> <tr style="background-color: #f9f9f9"> <td>slideshowStart</td> <td>&quot;start slideshow&quot;</td> <td> <p>开始自动滑动按钮的文本</p></td></tr> <tr> <td>slideshowStop</td> <td>&quot;stop slideshow&quot;</td> <td> <p>停止自动滑动按钮的文本</p></td></tr> <tr style="background-color: #f9f9f9"> <td>current</td> <td>&quot;&#123;current&#125; of &#123;total&#125;&quot;</td> <td> <p>文本内容：现在正在显示的元素序号</p></td></tr> <tr> <td>previous</td> <td>&quot;previous&quot;</td> <td> <p>&ldquo;上一个&rdquo;按钮的文本</p></td></tr> <tr style="background-color: #f9f9f9"> <td>next</td> <td>&quot;next&quot;</td> <td> <p>&ldquo;下一个&rdquo;按钮的文本</p></td></tr> <tr> <td>close</td> <td>&quot;close&quot;</td> <td> <p>&ldquo;关闭&rdquo;按钮的文本</p></td></tr></tbody></table></div></li>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/320.htm</link>
<title><![CDATA[mysql 错误码表，错误码解释大全]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[web技术]]></category>
<pubDate>Mon, 26 Mar 2012 08:32:53 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/320.htm</guid> 
<description>
<![CDATA[ 
	<p>mysql错误码表，MYSQL出错代码及出错信息对照<br />使用Ctrl+F进行搜索<br /></p><p>1004 =&gt; '无法创建文件',<br />1005 =&gt; '无法创建表',<br />1006 =&gt; '无法创建数据库',<br />1007 =&gt; '无法创建数据库，数据库已存在。',<br />1008 =&gt; '无法撤销数据库，数据库不存在。',<br />1009 =&gt; '撤销数据库时出错',<br />1010 =&gt; '撤销数据库时出错',<br />1011 =&gt; '删除时出错 ',<br />1012 =&gt; '无法读取系统表中的记录。 ',<br />1013 =&gt; '无法获取的状态',<br />1014 =&gt; '无法获得工作目录',<br />1015 =&gt; '无法锁定文件',<br />1016 =&gt; '无法打开文件',<br />1017 =&gt; '无法找到文件',<br />1018 =&gt; '无法读取的目录 ',<br />1019 =&gt; '无法为更改目录 ',<br />1020 =&gt; '自上次读取以来表中的记录已改变。 ',<br />1021 =&gt; '磁盘满',<br />1022 =&gt; '无法写入',<br />1023 =&gt; '关闭时出错 ',<br />1024 =&gt; '读取文件时出错 ',<br />1025 =&gt; '将重命名为时出错 ',<br />1026 =&gt; '写入文件时出错 ',<br />1027 =&gt; '已锁定，拒绝更改。',<br />1028 =&gt; '分类失败 ',<br />1029 =&gt; '对于，视图不存在。',<br />1030 =&gt; '从存储引擎中获得错误%d。',<br />1031 =&gt; '关于的表存储引擎不含该选项。',<br />1032 =&gt; '无法在中找到记录。',<br />1033 =&gt; '文件中的不正确信息',<br />1034 =&gt; '对于表， 键文件不正确，请尝试修复。',<br />1035 =&gt; '旧的键文件，对于表，请修复之！',<br />1036 =&gt; '表是只读的。',<br />1037 =&gt; '内存溢出，重启服务器并再次尝试（需要%d字节）。',<br />1038 =&gt; '分类内存溢出，增加服务器的分类缓冲区大小。',<br />1039 =&gt; '读取文件时出现意外EOF ',<br />1040 =&gt; '连接过多。',<br />1041 =&gt; '内存溢出，请检查是否mysqld或其他进程使用了所有可用内存，如不然，或许应使用'ulimit'允许mysqld使用更多内存，或增加交换空间的大小。',<br />1042 =&gt; '无法获得该地址给出的主机名。',<br />1043 =&gt; '不良握手',<br />1044 =&gt; '拒绝用户@访问数据库。',<br />1045 =&gt; '拒绝用户@的访问（使用密码%s）',<br />1046 =&gt; '未选择数据库。',<br />1047 =&gt; '未知命令。',<br />1048 =&gt; '列不能为空。',<br />1049 =&gt; '未知数据库。',<br />1050 =&gt; '表已存在。',<br />1051 =&gt; '未知表。',<br />1052 =&gt; '%s中的列不明确。',<br />1053 =&gt; '在操作过程中服务器关闭。',<br />1054 =&gt; '中的未知列。',<br />1055 =&gt; '不在GROUP BY中。',<br />1056 =&gt; '无法在上创建组。',<br />1057 =&gt; '语句中有sum函数和相同语句中的列。',<br />1058 =&gt; '列计数不匹配值计数。',<br />1059 =&gt; 'ID名称过长。',<br />1060 =&gt; '重复列名。',<br />1061 =&gt; '重复键名称。',<br />1062 =&gt; '键%d的重复条目。',<br />1063 =&gt; '对于列，列分类符不正确。',<br />1064 =&gt; '在行%d上，%s靠近。',<br />1065 =&gt; '查询为空。',<br />1066 =&gt; '非唯一的表/别名',<br />1067 =&gt; '关于的无效默认值。',<br />1068 =&gt; '定义了多个主键。',<br />1069 =&gt; '指定了过多键允许的最大键数是%d。',<br />1070 =&gt; '指定了过多键部分允许的最大键部分是%d。',<br />1071 =&gt; '指定的键过长，最大键长度是%d字节。',<br />1072 =&gt; '键列在表中不存在。',<br />1073 =&gt; 'BLOB列不能与已使用的表类型用在 键说明中。',<br />1074 =&gt; '对于列，列长度过大 ',<br />1075 =&gt; '不正确的表定义，只能有1个auto列，而且必须将其定义为 键。',<br />1076 =&gt; '%s，连接就绪。版本，套接字，端口%d ',<br />1077 =&gt; '%s，正常关闭。',<br />1078 =&gt; '%s，获得信号%d。放弃！',<br />1079 =&gt; '%s，关闭完成',<br />1080 =&gt; '%s，强制关闭线程%ld，用户',<br />1081 =&gt; '无法创建IP套接字',<br />1082 =&gt; '表中没有与CREATE INDEX中索引类似的索引，重新创建表。',<br />1083 =&gt; '字段分隔符参量不是预期的，请参考手册。',<br />1084 =&gt; '不能与BLOB一起使用固定行长度，请使用'fields terminated by'。 ',<br />1085 =&gt; '文件必须在数据库目录下，或能被所有人读取。',<br />1086 =&gt; '文件已存在。',<br />1087 =&gt; '记录，%ld；已删除，%ld；已跳过，%ld；警告，%ld ',<br />1088 =&gt; '记录，%ld；重复，%ld ',<br />1089 =&gt; '不正确的子部分键，使用的键部分不是字符串，所用的长度长于键部分，或存储引擎不支持唯一子键。',<br />1090 =&gt; '不能用ALTER TABLE删除所有列，请使用DROP TABLE取而代之。',<br />1091 =&gt; '不能撤销，请检查列/键是否存在。',<br />1092 =&gt; '记录，%ld；复制，%ld；告警，%ld ',<br />1093 =&gt; '不能在FROM子句中制定要更新的目标表。',<br />1094 =&gt; '未知线程ID%lu ',<br />1095 =&gt; '你不是线程%lu的所有者。 ',<br />1096 =&gt; '未使用任何表。',<br />1097 =&gt; '列%s和SET的字符串过多。',<br />1098 =&gt; '不能生成唯一的日志文件名%s.',<br />1099 =&gt; '表已用READ锁定，不能更新。',<br />1100 =&gt; '未使用LOCK TABLES锁定表。',<br />1101 =&gt; 'BLOB/TEXT列不能有默认值。',<br />1102 =&gt; '不正确的数据库名。',<br />1103 =&gt; '不正确的表名。',<br />1104 =&gt; 'SELECT将检查超过MAX_JOIN_SIZE的行，如果SELECT正常，请检查WHERE，并使用SET SQL_BIG_SELECTS=1或SET SQL_MAX_JOIN_SIZE=#。',<br />1105 =&gt; '未知错误。',<br />1106 =&gt; '未知过程',<br />1107 =&gt; '对于过程，参数计数不正确 ',<br />1108 =&gt; '对于过程，参数不正确',<br />1109 =&gt; '%s中的未知表%s ',<br />1110 =&gt; '列被指定了两次。',<br />1111 =&gt; '无效的分组函数使用',<br />1112 =&gt; '表使用了该MySQL版本中不存在的扩展。',<br />1113 =&gt; '1个表至少要有1列。',<br />1114 =&gt; '表已满。',<br />1115 =&gt; '未知字符集。',<br />1116 =&gt; '表过多，MySQL在1个联合操作中只能使用%d个表。',<br />1117 =&gt; '列过多。',<br />1118 =&gt; '行的大小过大。对于所使用的表类型，不包括BLOB，最大行大小为%ld。必须将某些列更改为TEXT或BLOB。',<br />1119 =&gt; '线程堆栈溢出，已使用，%ld堆栈的%ld。如果需要，请使用'mysqld -O thread_stack=#'指定较大的堆栈。',<br />1120 =&gt; '在OUTER JOIN中发现交叉关联，请检查ON条件。',<br />1121 =&gt; '列与UNIQUE或INDEX一起使用，但未定义为NOT NULL。',<br />1122 =&gt; '无法加载函数。 ',<br />1123 =&gt; '无法初始化函数; %s ',<br />1124 =&gt; '对于共享库，不允许任何路径。',<br />1125 =&gt; '函数已存在。',<br />1126 =&gt; '不能打开共享库',<br />1127 =&gt; '不能发现库中的符号。',<br />1128 =&gt; '函数未定义。',<br />1129 =&gt; '由于存在很多连接错误，主机被屏蔽，请用'mysqladmin flush-hosts'解除屏蔽。',<br />1130 =&gt; '不允许将主机连接到该MySQL服务器。',<br />1131 =&gt; '你正在已匿名用户身份使用MySQL，不允许匿名用户更改密码。',<br />1132 =&gt; '必须有更新mysql数据库中表的权限才能更改密码。',<br />1133 =&gt; '无法在用户表中找到匹配行。',<br />1134 =&gt; '行匹配，%ld；已更改，%ld；警告，%ld ',<br />1135 =&gt; '无法创建新线程',<br />1136 =&gt; '列计数不匹配行%ld上的值计数。',<br />1137 =&gt; '无法再次打开表。',<br />1138 =&gt; 'NULL值使用无效。',<br />1139 =&gt; '获得来自regexp的错误。',<br />1140 =&gt; '如果没有GROUP BY子句，GROUP列 ',<br />1141 =&gt; '没有为主机上的用户定义这类授权。',<br />1142 =&gt; '拒绝用户@在表上使用%s命令。 ',<br />1143 =&gt; '拒绝用户@在表的上使用%s命令。',<br />1144 =&gt; '非法GRANT/REVOKE命令，请参阅手册以了解可使用那种权限。',<br />1145 =&gt; 'GRANT的主机或用户参量过长。',<br />1146 =&gt; '表'%s.%s'不存在。 ',<br />1147 =&gt; '在表上没有为主机上的用户定义的这类授权。',<br />1148 =&gt; '所使用的命令在该MySQL版本中不允许。',<br />1149 =&gt; '存在SQL语法错误，请参阅与你的MySQL版本对应的手册，以了解正确的语法。',<br />1150 =&gt; '对于表%s，延迟的插入线程不能获得请求的锁定。',<br />1151 =&gt; '使用的延迟线程过多。',<br />1152 =&gt; '与数据库和用户的连接%ld失败 ',<br />1153 =&gt; '获得信息包大于'max_allowed_packet'字节。',<br />1154 =&gt; '获得来自连接管道的读错误。',<br />1155 =&gt; '获得来自fcntl',<br />1156 =&gt; '获得信息包无序。',<br />1157 =&gt; '无法解压缩通信信息包。',<br />1158 =&gt; '读取通信信息包时出错。',<br />1159 =&gt; '读取通信信息包时出现超时。',<br />1160 =&gt; '写入通信信息包时出错。',<br />1161 =&gt; '写入通信信息包时出现超时。',<br />1162 =&gt; '结果字符串长于'max_allowed_packet'字节。',<br />1163 =&gt; '所使用的表类型不支持BLOB/TEXT列。',<br />1164 =&gt; '所使用的表类型不支持AUTO_INCREMENT列。',<br />1165 =&gt; '由于用LOCK TABLES锁定了表，INSERT DELAYED不能与表一起使用。',<br />1166 =&gt; '不正确的列名。',<br />1167 =&gt; '所使用的存储引擎不能为列编制索引。',<br />1168 =&gt; 'MERGE表中的所有表未同等定义。',<br />1169 =&gt; '由于唯一性限制，不能写入到表。',<br />1170 =&gt; '在未指定键长度的键说明中使用了BLOB/TEXT列。',<br />1171 =&gt; 'PRIMARY KEY的所有部分必须是NOT NULL，如果需要为NULL的关键字，请使用UNIQUE取而代之。',<br />1172 =&gt; '结果有1个以上的行组成。',<br />1173 =&gt; '该表类型要求主键。',<br />1174 =&gt; '该MySQL版本是未使用RAID支持而编译的。',<br />1175 =&gt; '你正在使用安全更新模式，而且试图在不使用WHERE的情况下更新使用了KEY列的表。',<br />1176 =&gt; '在表中，键不存在。',<br />1177 =&gt; '无法打开表。',<br />1178 =&gt; '用于表的引擎不支持%s。',<br />1179 =&gt; '不允许在事务中执行该命令。',<br />1180 =&gt; '在COMMIT期间出现错误%d。',<br />1181 =&gt; '在ROLLBACK期间出现错误%d。',<br />1182 =&gt; '在FLUSH_LOGS期间出现错误%d。',<br />1183 =&gt; '在CHECKPOINT期间出现错误%d。',<br />1184 =&gt; '与数据库、用户和主机的连接%ld失败 ',<br />1185 =&gt; '针对表的存储引擎不支持二进制表转储。',<br />1186 =&gt; 'Binlog已关闭，不能RESET MASTER。',<br />1187 =&gt; '重新创建转储表的索引失败。',<br />1188 =&gt; '来自主连接的错误。',<br />1189 =&gt; '读取主连接时出现网络错误。',<br />1190 =&gt; '写入主连接时出现网络错误。',<br />1191 =&gt; '无法找到与列列表匹配的FULLTEXT索引。',<br />1192 =&gt; '由于存在活动的锁定表或活动的事务，不能执行给定的命令。',<br />1193 =&gt; '未知的系统变量。',<br />1194 =&gt; '表被标记为崩溃，应予以修复。',<br />1195 =&gt; '表被标记为崩溃，而且上次修复失败（自动？）',<br />1196 =&gt; '不能回滚某些非事务性已变动表。',<br />1197 =&gt; '多语句事务要求更多的'max_binlog_cache_size'存储字节，增大mysqld变量，并再次尝试。',<br />1198 =&gt; '运行从实例时不能执行该操作，请首先运行STOP SLAVE。',<br />1199 =&gt; '该操作需要运行的从实例，请配置SLAVE并执行START SLAVE。',<br />1200 =&gt; '服务器未配置为从服务器，请更正config文件，或使用CHANGE MASTER TO。',<br />1201 =&gt; '无法初始化主服务器信息结构，在MySQL错误日志中可找到更多错误消息。',<br />1202 =&gt; '无法创建从线程，请检查系统资源。',<br />1203 =&gt; '用户%s已有了超过'max_user_connections'的活动连接。',<br />1204 =&gt; '或许仅应与SET一起使用常量表达式。',<br />1205 =&gt; '超过了锁定等待超时，请尝试重新启动事务。',<br />1206 =&gt; '总的锁定数超出了锁定表的大小。',<br />1207 =&gt; '在READ UNCOMMITTED事务期间，无法获得更新锁定。',<br />1208 =&gt; '当线程保持为全局读锁定时，不允许DROP DATABASE。',<br />1209 =&gt; '当线程保持为全局读锁定时，不允许CREATE DATABASE。',<br />1210 =&gt; '为%s提供的参量不正确。',<br />1211 =&gt; '不允许@创建新用户。',<br />1212 =&gt; '不正确的表定义，所有的MERGE表必须位于相同的数据库中。',<br />1213 =&gt; '试图获取锁定时发现死锁，请尝试重新启动事务。',<br />1214 =&gt; '所使用的表类型不支持FULLTEXT索引。',<br />1215 =&gt; '无法添加外键约束。',<br />1216 =&gt; '无法添加或更新子行，外键约束失败。',<br />1217 =&gt; '无法删除或更新父行，外键约束失败。',<br />1218 =&gt; '连接至主服务器%s时出错。',<br />1219 =&gt; '在主服务器%s上执行查询时出错。',<br />1220 =&gt; '执行命令%s: %s时出错。',<br />1221 =&gt; '%s和%s的用法不正确。',<br />1222 =&gt; '所使用的SELECT语句有不同的列数。',<br />1223 =&gt; '由于存在冲突的读锁定，无法执行查询。',<br />1224 =&gt; '禁止混合事务性表和非事务性表。',<br />1225 =&gt; '在语句中使用了两次选项。',<br />1226 =&gt; '用户超出了资源（当前值%ld）。',<br />1227 =&gt; '拒绝访问，需要%s权限才能执行该操作。',<br />1228 =&gt; '变量是1种SESSION变量，不能与SET GLOBAL一起使用。',<br />1229 =&gt; '变量是1种GLOBAL变量，应使用SET GLOBAL来设置它。',<br />1230 =&gt; '变量没有默认值。',<br />1231 =&gt; '变量不能设置为值。',<br />1232 =&gt; '变量的参量类型不正确。',<br />1233 =&gt; '变量只能被设置，不能被读取。',<br />1234 =&gt; '不正确的用法/位置。',<br />1235 =&gt; '该MySQL版本尚不支持。',<br />1236 =&gt; '从二进制日志读取数据时，获得来自主服务器的致命错误%d:。',<br />1237 =&gt; '由于&ldquo;replicate-*-table&rdquo;规则，从SQL线程忽略了查询。。',<br />1238 =&gt; '变量是一种%s变量。',<br />1239 =&gt; '对于: %s， 外键定义不正确。',<br />1240 =&gt; '键引用和表引用不匹配。',<br />1241 =&gt; '操作数应包含%d列。',<br />1242 =&gt; '子查询返回1行以上。',<br />1243 =&gt; '指定给%s的未知预处理语句句柄。',<br />1244 =&gt; '帮助数据库崩溃或不存在。',<br />1245 =&gt; '对子查询的循环引用。',<br />1246 =&gt; '将列从%s转换为%s。',<br />1247 =&gt; '引用不被支持 ',<br />1248 =&gt; '所有的导出表必须有自己的别名。',<br />1249 =&gt; '在优化期间简化了选择%u。',<br />1250 =&gt; '来自某一SELECT的表不能在%s中使用。',<br />1251 =&gt; '客户端不支持服务器请求的鉴定协议，请考虑升级MySQL客户端。',<br />1252 =&gt; 'SPATIAL索引的所有部分必须是NOT NULL。',<br />1253 =&gt; '对于CHARACTER SET，COLLATION无效。',<br />1254 =&gt; '从服务器正在运行。',<br />1255 =&gt; '从服务器已停止。',<br />1256 =&gt; '解压的数据过大，最大大小为%d（也可能是，解压数据的长度已损坏）。',<br />1257 =&gt; 'ZLIB，无足够内存。',<br />1258 =&gt; 'ZLIB，输出缓冲区内无足够空间（也可能是，解压数据的长度已损坏）。',<br />1259 =&gt; 'ZLIB，输入数据已损坏。',<br />1260 =&gt; '%d行被GROUP_CONCAT',<br />1261 =&gt; '行%ld不包含所有列的数据。',<br />1262 =&gt; '行%ld被解短，它包含的数据大于输入列中的数据。',<br />1263 =&gt; '列被设为默认值，在行%ld上将NULL提供给了NOT NULL列。',<br />1264 =&gt; '为行%ld上的列调整超出范围的值。',<br />1265 =&gt; '为行%ld上的列截短数据。',<br />1266 =&gt; '为表%s使用存储引擎%s。',<br />1267 =&gt; '对于操作，非法混合了校对',<br />1268 =&gt; '无法撤销1个或多个请求的用户。',<br />1269 =&gt; '无法撤销所有权限，为1个或多个请求的用户授权。',<br />1270 =&gt; '对于操作，非法混合了校对',<br />1271 =&gt; '对于操作，非法混合了校对。',<br />1272 =&gt; '变量不是变量组分（不能用作XXXX.variable_name）。',<br />1273 =&gt; '未知校对。',<br />1274 =&gt; '由于该MySQL从服务器是在不支持SSL的情况下编译的，CHANGE MASTER中的SSL参数被忽略，随后，如果启动了具备SSL功能的MySQL，可使用这些参数。',<br />1275 =&gt; '服务器正运行在&ldquo;--secure-auth&rdquo;模式下，但@有1个采用旧格式的密码，请将密码更改为新格式。',<br />1276 =&gt; 'SELECT #%d的字段或引用'%s%s%s%s%s'是在SELECT #%d中确定的。',<br />1277 =&gt; '对于START SLAVE UNTIL，不正确的参数或参数组合。',<br />1278 =&gt; '与START SLAVE UNTIL一起执行按步复制时，建议使用&ldquo;--skip-slave-start&rdquo;，否则，如果发生未预料的从服务器mysqld重启，间出现问题。',<br />1279 =&gt; 'SQL线程未启动，因而UNTIL选项被忽略。',<br />1280 =&gt; '不正确的索引名。',<br />1281 =&gt; '不正确的目录名。',<br />1282 =&gt; '查询高速缓冲设置大小%lu时失败，新的查询高速缓冲的大小是%lu。',<br />1283 =&gt; '列不能是FULLTEXT索引的一部分。',<br />1284 =&gt; '未知的键高速缓冲。',<br />1285 =&gt; 'MySQL是在&ldquo;--skip-name-resolve&rdquo;模式下启动的，必须在不使用该开关的情况下重启它，以便该授权能起作用。',<br />1286 =&gt; '未知的表引擎。',<br />1287 =&gt; '已过时，请使用取而代之。',<br />1288 =&gt; '%s的目标表%s不可更新。',<br />1289 =&gt; '特性已被禁止，要想使其工作，需要用创建MySQL。',<br />1290 =&gt; 'MySQL正使用%s选项运行，因此不能执行该语句。',<br />1291 =&gt; '列在%s中有重复值。',<br />1292 =&gt; '截短了不正确的%s值:',<br />1293 =&gt; '不正确的表定义，在DEFAULT或ON UPDATE子句中，对于CURRENT_TIMESTAMP，只能有一个TIMESTAMP列。',<br />1294 =&gt; '对于列，ON UPDATE子句无效。',<br />1295 =&gt; '在预处理语句协议中，尚不支持该命令。',<br />1296 =&gt; '从%s获得错误%d。',<br />1297 =&gt; '从%s获得临时错误%d。',<br />1298 =&gt; '未知或不正确的时区:',<br />1299 =&gt; '在行%ld的列中存在无效的TIMESTAMP值。',<br />1300 =&gt; '无效的%s字符串:',<br />1301 =&gt;,<br />1302 =&gt; '冲突声明'%s%s'和'%s%s' ',<br />1303 =&gt; '不能从另一个存储子程序中创建%s。',<br />1304 =&gt; '%s %s已存在。',<br />1305 =&gt; '%s %s不存在。',<br />1306 =&gt; 'DROP %s %s失败',<br />1307 =&gt; 'CREATE %s %s失败。',<br />1308 =&gt; '%s无匹配标签: %s ',<br />1309 =&gt; '重新定义标签%s ',<br />1310 =&gt; '末端标签%s无匹配项',<br />1311 =&gt; '正在引用未初始化的变量%s。',<br />1312 =&gt; 'PROCEDURE %s不能在给定场景下返回结果集。',<br />1313 =&gt; '仅在FUNCTION中允许RETURN。',<br />1314 =&gt; '在存储程序中不允许%s。',<br />1315 =&gt; '更新日志已被放弃，并用二进制日志取代，SET SQL_LOG_UPDATE被忽略。',<br />1316 =&gt; '更新日志已被放弃，并用二进制日志取代，SET SQL_LOG_UPDATE已被截短为SET SQL_LOG_BIN。',<br />1317 =&gt; '查询执行被中断。',<br />1318 =&gt; '对于%s %s，参量数目不正确，预期为%u，但却是%u。',<br />1319 =&gt; '未定义的CONDITION: %s ',<br />1320 =&gt; '在FUNCTION %s中未发现RETURN。',<br />1321 =&gt; 'FUNCTION %s结束时缺少RETURN。',<br />1322 =&gt; '光标语句必须是SELECT。',<br />1323 =&gt; '光标SELECT不得有INTO。',<br />1324 =&gt; '未定义的CURSOR: %s ',<br />1325 =&gt; '光标已打开 ',<br />1326 =&gt; '光标未打开 ',<br />1327 =&gt; '未声明的变量%s ',<br />1328 =&gt; '不正确的FETCH变量数目。',<br />1329 =&gt; 'FETCH无数据。',<br />1330 =&gt; '重复参数: %s ',<br />1331 =&gt; '重复变量: %s ',<br />1332 =&gt; '重复条件: %s ',<br />1333 =&gt; '重复光标: %s ',<br />1334 =&gt; 'ALTER %s %s失败。',<br />1335 =&gt; '不支持Subselect值。',<br />1336 =&gt; '在存储函数或触发程序中，不允许%s。',<br />1337 =&gt; '光标或句柄声明后面的变量或条件声明。',<br />1338 =&gt; '句柄声明后面的光标声明。',<br />1339 =&gt; '对于CASE语句，未发现Case。',<br />1340 =&gt; '配置文件过大。',<br />1341 =&gt; '文件中存在残缺的文件类型标题。',<br />1342 =&gt; '解析时，文件意外结束。',<br />1343 =&gt; '解析参数时出错（行）。',<br />1344 =&gt; '跳过未知参数时，文件意外结束。',<br />1345 =&gt; 'EXPLAIN/SHOW无法发出，缺少对基本表的权限。',<br />1346 =&gt; '文件在其题头中有未知的类型。',<br />1347 =&gt; ''%s.%s'不是%s。',<br />1348 =&gt; '列不可更新。',<br />1349 =&gt; '视图的SELECT在FROM子句中包含子查询。',<br />1350 =&gt; '视图的SELECT包含子句。',<br />1351 =&gt; '视图的SELECT包含1个变量或参数。',<br />1352 =&gt; '视图的SELECT引用了临时表。',<br />1353 =&gt; '视图的SELECT和视图的字段列表有不同的列计数。',<br />1354 =&gt; '此时，不能在这里使用视图合并算法（假定未定义算法）。',<br />1355 =&gt; '正在更新的视图没有其基本表的完整键。',<br />1356 =&gt; '视图'%s.%s'引用了无效的表、列、或函数，或视图的定义程序／调用程序缺少使用它们的权限。',<br />1357 =&gt; '无法从另一个存储子程序中撤销或更改%s。',<br />1358 =&gt; '在存储子程序句柄中不允许GOTO。',<br />1359 =&gt; '触发程序已存在。',<br />1360 =&gt; '触发程序不存在。',<br />1361 =&gt; '触发程序的是视图或临时表。',<br />1362 =&gt; '在%strigger中，不允许更新%s行。',<br />1363 =&gt; '在%s触发程序中没有%s行。',<br />1364 =&gt; '字段没有默认值。 ',<br />1365 =&gt; '被0除。',<br />1366 =&gt; '不正确的%s值，，对于行%ld 上的列。',<br />1367 =&gt; '解析过程中发现非法%s值。',<br />1368 =&gt; '不可更新视图'%s.%s'上的CHECK OPTION。',<br />1369 =&gt; 'CHECK OPTION失败，'%s.%s' ',<br />1370 =&gt; '对于子程序，拒绝用户@使用%s命令。',<br />1371 =&gt; '清除旧中继日志失败，%s ',<br />1372 =&gt; '密码混编应是%d位的十六进制数。',<br />1373 =&gt; '在binlog索引中未发现目标日志。',<br />1374 =&gt; '读取日志索引文件时出现I/O错误。',<br />1375 =&gt; '服务器配置不允许binlog清除。',<br />1376 =&gt; 'fseek',<br />1377 =&gt; '在日志清除过程中出现致命错误。',<br />1378 =&gt; '可清除的日志正在使用，不能清除。',<br />1379 =&gt; '在日志清除过程中出现未知错误。',<br />1380 =&gt; '初始化中继日志位置失败，%s ',<br />1381 =&gt; '未使用二进制日志功能。',<br />1382 =&gt; '语法保留给MySQL服务器内部使用。',<br />1383 =&gt; 'WSAStartup失败。',<br />1384 =&gt; '尚不能用不同的组处理过程。',<br />1385 =&gt; '对于该过程，SELECT必须有1个组。',<br />1386 =&gt; '不能与该过程一起使用ORDER子句。',<br />1387 =&gt; '二进制日志功能和复制功能禁止更改全局服务器%s。',<br />1388 =&gt; '无法映射文件: %s, errno: %d ',<br />1389 =&gt; '%s中有错',<br />1390 =&gt; '预处理语句包含过多的占位符。',<br />1391 =&gt; '键部分的长度不能为0。',<br />1392 =&gt; '视图文本校验和失败。',<br />1393 =&gt; '无法通过联合视图'%s.%s'更改1个以上的基本表。',<br />1394 =&gt; '不能在没有字段列表的情况下插入联合视图'%s.%s'。',<br />1395 =&gt; '不能从联合视图'%s.%s'中删除。',<br />1396 =&gt; '对于%s的操作%s失败。',<br />1397 =&gt; 'XAER_NOTA: 未知XID ',<br />1398 =&gt; 'XAER_INVAL: 无效参量（或不支持的命令）',<br />1399 =&gt; 'XAER_RMFAIL: 当全局事务处于%s状态时，不能执行命令。',<br />1400 =&gt; 'XAER_OUTSIDE: 某些工作是在全局事务外完成的。',<br />1401 =&gt; 'XAER_RMERR: 在事务分支中出现致命错误，请检查数据一致性。',<br />1402 =&gt; 'XA_RBROLLBACK: 回滚了事务分支。',<br />1403 =&gt; '在子程序上没有为主机上的用户定义的这类授权。',<br />1404 =&gt; '无法授予EXECUTE和ALTER ROUTINE权限。',<br />1405 =&gt; '无法撤销已放弃子程序上的所有权限。',<br />1406 =&gt; '对于行%ld上的列来说，数据过长。',<br />1407 =&gt; '不良SQLSTATE:',<br />1408 =&gt; '%s，连接就绪；版本，；套接字，；端口，%d %s ',<br />1409 =&gt; '不能从具有固定大小行的文件中将值加载到变量。',<br />1410 =&gt; '不允许用GRANT创建用户。',<br />1411 =&gt; '不正确的%s值，，对于函数%s ',<br />1412 =&gt; '表定义已更改，请再次尝试事务。',<br />1413 =&gt; '在相同块中声明了重复句柄。',<br />1414 =&gt; '子程序%s的OUT或INOUT参量不是变量。',<br />1415 =&gt; '不允许从%s返回结果集。',<br />1416 =&gt; '不能从发送给GEOMETRY字段的数据中获取几何对象。',<br />1417 =&gt; '1个子程序失败，在其声明没有NO SQL或READS SQL DATA，而且二进制日志功能已启用，如果更新了非事务性表，二进制日志将丢失其变化信息。',<br />1418 =&gt; '在该子程序的在其声明没有DETERMINISTIC、NO SQL或READS SQL DATA，而且二进制日志功能已启用（你或许打算使用不太安全的log_bin_trust_routine_creators变量）。',<br />1419 =&gt; '你没有SUPER权限，而且二进制日志功能已启用（你或许打算使用不太安全的log_bin_trust_routine_creators变量）。',<br />1420 =&gt; '不能执行该预处理语句，该预处理语句有与之相关的打开光标。请复位语句并再次执行。',<br />1421 =&gt; '语句',<br />1422 =&gt; '在存储函数或触发程序中，不允许显式或隐式提交。',<br />1423 =&gt; '视图'%s.%s'基本表的字段没有默认值。',<br />1424 =&gt; '不允许递归存储子程序。',<br />1425 =&gt; '为列指定了过大的标度%d。最大为%d。',<br />1426 =&gt; '为列指定了过高的精度%d。最大为%d。',<br />1427 =&gt; '对于float',<br />1428 =&gt; '不能将系统'%s.%s'表的写锁定与其他表结合起来。',<br />1429 =&gt; '无法连接到外部数据源，数据库！',<br />1430 =&gt; '处理作用在外部数据源上的查询时出现问题。数据源错误',<br />1431 =&gt; '你试图引用的外部数据源不存在。数据源错误',<br />1432 =&gt; '无法创建联合表。数据源连接字符串格式不正确。',<br />1433 =&gt; '数据源连接字符串格式不正确。',<br />1434 =&gt; '无法创建联合表。外部数据源错误',<br />1435 =&gt; '触发程序位于错误的方案中。',<br />1436 =&gt; '线程堆栈溢出，%ld字节堆栈用了%ld字节，并需要%ld字节。请使用'mysqld -O thread_stack=#'指定更大的堆栈。',<br />1437 =&gt; '的子程序主体过长。',<br />1438 =&gt; '无法撤销默认的keycache。',<br />1439 =&gt; '对于列，显示宽度超出范围',<br />1440 =&gt; 'XAER_DUPID: XID已存在',<br />1441 =&gt; '日期时间函数，%s字段溢出。',<br />1442 =&gt; '由于它已被调用了该存储函数／触发程序的语句使用，不能在存储函数／触发程序中更新表。',<br />1443 =&gt; '表的定义不允许在表'%s上执行操作%s。',<br />1444 =&gt; '预处理语句包含引用了相同语句的存储子程序调用。不允许以这类递归方式执行预处理语句。',<br />1445 =&gt; '不允许从存储函数或触发程序设置autocommit。',<br />1446 =&gt; '视图定义人不完全合格。',<br />1447 =&gt; '视图%s.%s没有定义人信息（旧的表格式）。当前用户将被当作定义人。请重新创建视图！',<br />1448 =&gt; '需要SUPER权限才能创建具有<a href="mailto:%s@%s">%s@%s</a>定义器的视图。',<br />1449 =&gt; '没有注册的<a href="mailto:%s@%s">%s@%s</a>。',<br />1450 =&gt; '不允许将方案从变为。',<br />1451 =&gt; '不能删除或更新父行，外键约束失败',<br />1452 =&gt; '不能添加或更新子行，外键约束失败',<br />1453 =&gt; '必须用`...`引用变量，或重新命名变量。',<br />1454 =&gt; '对于每个分区，%s PARTITIONING需要VALUES %s的定义。',<br />1455 =&gt; '在分区定义中，只有%s PARTITIONING能使用VALUES %s。',<br />1456 =&gt; 'MAXVALUE只能在最后1个分区定义中使用。',<br />1457 =&gt; '子分区只能是哈希分区，并按键分区。',<br />1458 =&gt; '定义了错误的分区数，与前面的设置不匹配。',<br />1459 =&gt; '定义了错误的子分区数，与前面的设置不匹配。',<br />1460 =&gt; '在分区（子分区）函数中不允许使用常量／随机表达式。',<br />1461 =&gt; 'RANGE/LIST VALUES中的表达式必须是常量。',<br />1462 =&gt; '在表中未发现分区函数字段列表中的字段。',<br />1463 =&gt; '仅在KEY分区中允许使用字段列表。',<br />1464 =&gt; 'frm文件中的分区信息与能够写入到frm文件中的不一致。',<br />1465 =&gt; '%s函数返回了错误类型。',<br />1466 =&gt; '对于%s分区，必须定义每个分区。',<br />1467 =&gt; '对于各分区，VALUES LESS THAN值必须严格增大。',<br />1468 =&gt; 'VALUES值必须与分区函数具有相同的类型。',<br />1469 =&gt; 'Multiple definition of same constant in list partitioning ',<br />1470 =&gt; '在查询中，不能独立使用分区功能。',<br />1471 =&gt; '在该MySQL版本中，不允许分区中的句柄组合。',<br />1472 =&gt; '对于分区引擎，有必要定义所有的%s。',<br />1473 =&gt; '定义了过多分区。',<br />1474 =&gt; '对于子分区，仅能将RANGE/LIST分区与HASH/KEY分区混合起来。',<br />1475 =&gt; '无法创建特定的句柄文件。',<br />1476 =&gt; '在分区函数中，不允许使用BLOB字段。',<br />1477 =&gt; '如果为分区函数选择了二进制校对，才允许使用VARCHAR。',<br />1478 =&gt; '在分区函数中，%s需要包含所有文件。',<br />1479 =&gt; '%s的数目= 0不是允许的值。',<br />1480 =&gt; '无法在非分区表上进行分区管理。',<br />1481 =&gt; '分区列表中的错误出现变化。',<br />1482 =&gt; '不能删除所有分区，请使用DROP TABLE取而代之。',<br />1483 =&gt; 'COALESCE PARTITION仅能在HASH/KEY分区上使用。',<br />1484 =&gt; '%s PARTITION仅能在RANGE/LIST分区上使用。',<br />1485 =&gt; '试图用错误的子分区数增加分区。',<br />1486 =&gt; '必须至少添加1个分区。',<br />1487 =&gt; '必须至少合并1个分区。',<br />1488 =&gt; '重组的分区数超过了已有的分区数。',<br />1489 =&gt; '在表中，所有分区必须有唯一的名称。',<br />1490 =&gt; '重组分区集合时，它们必须连续。',<br />1491 =&gt; '新分区的范围超过了已重组分区的范围。',<br />1492 =&gt; '在该版本的句柄中，不支持撤销分区。',<br />1493 =&gt; '在表上定义了外键约束时，不能舍弃分区。',<br />1494 =&gt; '未加载插件',</p><p>2000 =&gt; '未知MySQL错误。',<br />2001 =&gt; '不能创建UNIX套接字',<br />2002 =&gt; '不能通过套接字',<br />2003 =&gt; '不能连接到',<br />2004 =&gt; '不能创建TCP/IP套接字',<br />2005 =&gt; '未知的MySQL服务器主机',<br />2006 =&gt; 'MySQL服务器不可用。',<br />2007 =&gt; '协议不匹配，服务器版本= %d，客户端版本= %d ',<br />2008 =&gt; 'MySQL客户端内存溢出。',<br />2009 =&gt; '错误的主机信息',<br />2010 =&gt; '通过UNIX套接字连接的本地主机。',<br />2011 =&gt; '%s，通过TCP/IP ',<br />2012 =&gt; '服务器握手过程中出错。',<br />2013 =&gt; '查询过程中丢失了与MySQL服务器的连接。',<br />2014 =&gt; '命令不同步，你现在不能运行该命令。',<br />2015 =&gt; '命名管道，%s ',<br />2016 =&gt; '无法等待命名管道，主机，%s；管道，%s ',<br />2017 =&gt; '无法打开命名管道，主机，%s；管道，%s ',<br />2018 =&gt; '无法设置命名管道的状态，主机，%s；管道，%s ',<br />2019 =&gt; '无法初始化字符集%s ',<br />2020 =&gt; '获得的信息包大于'max_allowed_packet'字节。',<br />2021 =&gt; '嵌入式服务器。',<br />2022 =&gt; 'SHOW SLAVE STATUS出错',<br />2023 =&gt; 'SHOW SLAVE HOSTS出错',<br />2024 =&gt; '连接到从服务器时出错',<br />2025 =&gt; '连接到主服务器时出错',<br />2026 =&gt; 'SSL连接错误',<br />2027 =&gt; '残缺信息包。',<br />2028 =&gt; '该客户端库仅授权给具有许可的MySQL服务器使用。',<br />2029 =&gt; '空指针的无效使用。',<br />2030 =&gt; '语句未准备好。',<br />2031 =&gt; '没有为预处理语句中的参数提供数据。',<br />2032 =&gt; '数据截短。',<br />2033 =&gt; '语句中不存在任何参数。',<br />2034 =&gt; '无效的参数编号。',<br />2035 =&gt; '不能为非字符串／非二进制数据类型发送长数据（参数%d）。',<br />2036 =&gt; '正使用不支持的缓冲区类型， %d （参数%d）',<br />2037 =&gt; '共享内存，%s ',<br />2038 =&gt; '不能打开共享内存，客户端不能创建请求事件',<br />2039 =&gt; '不能打开共享内存，未收到服务器的应答事件',<br />2040 =&gt; '不能打开共享内存，服务器不能分配文件映射',<br />2041 =&gt; '不能打开共享内存，服务器不能获得文件映射的指针',<br />2042 =&gt; '不能打开共享内存，客户端不能分配文件映射',<br />2043 =&gt; '不能打开共享内存，客户端不能获得文件映射的指针',<br />2044 =&gt; '不能打开共享内存，客户端不能创建%s事件',<br />2045 =&gt; '不能打开共享内存，无来自服务器的应答 ',<br />2046 =&gt; '不能打开共享内存，不能将请求事件发送到服务器',<br />2047 =&gt; '错误或未知协议',<br />2048 =&gt; '无效的连接句柄',<br />2049 =&gt; '拒绝使用旧鉴定协议（早于4.1.1）的连接（开启了客户端'secure_auth'选项）。',<br />2050 =&gt; '行检索被mysql_stmt_close',<br />2051 =&gt; '在未事先获取行的情况下试图读取列。',<br />2052 =&gt; '预处理语句不含元数据。',<br />2053 =&gt; '在没有与语句相关的结果集时试图读取行。',<br />2054 =&gt; '该特性尚未实施。',<br /></p><p></p><p>ER_HASHCHK 1000 HY000&nbsp;&nbsp;<br />ER_NISAMCHK 1001 HY000&nbsp;&nbsp;<br />ER_NO 1002 HY000&nbsp;&nbsp;<br />ER_YES 1003 HY000&nbsp;&nbsp;<br />ER_CANT_CREATE_FILE 1004 HY000&nbsp;&nbsp;<br />ER_CANT_CREATE_TABLE 1005 HY000&nbsp;&nbsp;<br />ER_CANT_CREATE_DB 1006 HY000&nbsp;&nbsp;<br />ER_DB_CREATE_EXISTS 1007 HY000&nbsp;&nbsp;<br />ER_DB_DROP_EXISTS 1008 HY000&nbsp;&nbsp;<br />ER_DB_DROP_DELETE 1009 HY000&nbsp;&nbsp;<br />ER_DB_DROP_RMDIR 1010 HY000&nbsp;&nbsp;<br />ER_CANT_DELETE_FILE 1011 HY000&nbsp;&nbsp;<br />ER_CANT_FIND_SYSTEM_REC 1012 HY000&nbsp;&nbsp;<br />ER_CANT_GET_STAT 1013 HY000&nbsp;&nbsp;<br />ER_CANT_GET_WD 1014 HY000&nbsp;&nbsp;<br />ER_CANT_LOCK 1015 HY000&nbsp;&nbsp;<br />ER_CANT_OPEN_FILE 1016 HY000&nbsp;&nbsp;<br />ER_FILE_NOT_FOUND 1017 HY000&nbsp;&nbsp;<br />ER_CANT_READ_DIR 1018 HY000&nbsp;&nbsp;<br />ER_CANT_SET_WD 1019 HY000&nbsp;&nbsp;<br />ER_CHECKREAD 1020 HY000&nbsp;&nbsp;<br />ER_DISK_FULL 1021 HY000&nbsp;&nbsp;<br />ER_DUP_KEY 1022 23000&nbsp;&nbsp;<br />ER_ERROR_ON_CLOSE 1023 HY000&nbsp;&nbsp;<br />ER_ERROR_ON_READ 1024 HY000&nbsp;&nbsp;<br />ER_ERROR_ON_RENAME 1025 HY000&nbsp;&nbsp;<br />ER_ERROR_ON_WRITE 1026 HY000&nbsp;&nbsp;<br />ER_FILE_USED 1027 HY000&nbsp;&nbsp;<br />ER_FILSORT_ABORT 1028 HY000&nbsp;&nbsp;<br />ER_FORM_NOT_FOUND 1029 HY000&nbsp;&nbsp;<br />ER_GET_ERRNO 1030 HY000&nbsp;&nbsp;<br />ER_ILLEGAL_HA 1031 HY000&nbsp;&nbsp;<br />ER_KEY_NOT_FOUND 1032 HY000&nbsp;&nbsp;<br />ER_NOT_FORM_FILE 1033 HY000&nbsp;&nbsp;<br />ER_NOT_KEYFILE 1034 HY000&nbsp;&nbsp;<br />ER_OLD_KEYFILE 1035 HY000&nbsp;&nbsp;<br />ER_OPEN_AS_READONLY 1036 HY000&nbsp;&nbsp;<br />ER_OUTOFMEMORY 1037 HY001&nbsp;&nbsp;<br />ER_OUT_OF_SORTMEMORY 1038 HY001&nbsp;&nbsp;<br />ER_UNEXPECTED_EOF 1039 HY000&nbsp;&nbsp;<br />ER_CON_COUNT_ERROR 1040 08004&nbsp;&nbsp;<br />ER_OUT_OF_RESOURCES 1041 08004&nbsp;&nbsp;<br />ER_BAD_HOST_ERROR 1042 08S01&nbsp;&nbsp;<br />ER_HANDSHAKE_ERROR 1043 08S01&nbsp;&nbsp;<br />ER_DBACCESS_DENIED_ERROR 1044 42000&nbsp;&nbsp;<br />ER_ACCESS_DENIED_ERROR 1045 42000&nbsp;&nbsp;<br />ER_NO_DB_ERROR 1046 42000&nbsp;&nbsp;<br />ER_UNKNOWN_COM_ERROR 1047 08S01&nbsp;&nbsp;<br />ER_BAD_NULL_ERROR 1048 23000&nbsp;&nbsp;<br />ER_BAD_DB_ERROR 1049 42000&nbsp;&nbsp;<br />ER_TABLE_EXISTS_ERROR 1050 42S01&nbsp;&nbsp;<br />ER_BAD_TABLE_ERROR 1051 42S02&nbsp;&nbsp;<br />ER_NON_UNIQ_ERROR 1052 23000&nbsp;&nbsp;<br />ER_SERVER_SHUTDOWN 1053 08S01&nbsp;&nbsp;<br />ER_BAD_FIELD_ERROR 1054 42S22&nbsp;&nbsp;<br />ER_WRONG_FIELD_WITH_GROUP 1055 42000&nbsp;&nbsp;<br />ER_WRONG_GROUP_FIELD 1056 42000&nbsp;&nbsp;<br />ER_WRONG_SUM_SELECT 1057 42000&nbsp;&nbsp;<br />ER_WRONG_VALUE_COUNT 1058 21S01&nbsp;&nbsp;<br />ER_TOO_LONG_IDENT 1059 42000&nbsp;&nbsp;<br />ER_DUP_FIELDNAME 1060 42S21&nbsp;&nbsp;<br />ER_DUP_KEYNAME 1061 42000&nbsp;&nbsp;<br />ER_DUP_ENTRY 1062 23000&nbsp;&nbsp;<br />ER_WRONG_FIELD_SPEC 1063 42000&nbsp;&nbsp;<br />ER_PARSE_ERROR 1064 42000&nbsp;&nbsp;<br />ER_EMPTY_QUERY 1065 42000&nbsp;&nbsp;<br />ER_NONUNIQ_TABLE 1066 42000&nbsp;&nbsp;<br />ER_INVALID_DEFAULT 1067 42000&nbsp;&nbsp;<br />ER_MULTIPLE_PRI_KEY 1068 42000&nbsp;&nbsp;<br />ER_TOO_MANY_KEYS 1069 42000&nbsp;&nbsp;<br />ER_TOO_MANY_KEY_PARTS 1070 42000&nbsp;&nbsp;<br />ER_TOO_LONG_KEY 1071 42000&nbsp;&nbsp;<br />ER_KEY_COLUMN_DOES_NOT_EXITS 1072 42000&nbsp;&nbsp;<br />ER_BLOB_USED_AS_KEY 1073 42000&nbsp;&nbsp;<br />ER_TOO_BIG_FIELDLENGTH 1074 42000&nbsp;&nbsp;<br />ER_WRONG_AUTO_KEY 1075 42000&nbsp;&nbsp;<br />ER_READY 1076 00000&nbsp;&nbsp;<br />ER_NORMAL_SHUTDOWN 1077 00000&nbsp;&nbsp;<br />ER_GOT_SIGNAL 1078 00000&nbsp;&nbsp;<br />ER_SHUTDOWN_COMPLETE 1079 00000&nbsp;&nbsp;<br />ER_FORCING_CLOSE 1080 08S01&nbsp;&nbsp;<br />ER_IPSOCK_ERROR 1081 08S01&nbsp;&nbsp;<br />ER_NO_SUCH_INDEX 1082 42S12&nbsp;&nbsp;<br />ER_WRONG_FIELD_TERMINATORS 1083 42000&nbsp;&nbsp;<br />ER_BLOBS_AND_NO_TERMINATED 1084 42000&nbsp;&nbsp;<br />ER_TEXTFILE_NOT_READABLE 1085 HY000&nbsp;&nbsp;<br />ER_FILE_EXISTS_ERROR 1086 HY000&nbsp;&nbsp;<br />ER_LOAD_INFO 1087 HY000&nbsp;&nbsp;<br />ER_ALTER_INFO 1088 HY000&nbsp;&nbsp;<br />ER_WRONG_SUB_KEY 1089 HY000&nbsp;&nbsp;<br />ER_CANT_REMOVE_ALL_FIELDS 1090 42000&nbsp;&nbsp;<br />ER_CANT_DROP_FIELD_OR_KEY 1091 42000&nbsp;&nbsp;<br />ER_INSERT_INFO 1092 HY000&nbsp;&nbsp;<br />ER_UPDATE_TABLE_USED 1093 HY000&nbsp;&nbsp;<br />ER_NO_SUCH_THREAD 1094 HY000&nbsp;&nbsp;<br />ER_KILL_DENIED_ERROR 1095 HY000&nbsp;&nbsp;<br />ER_NO_TABLES_USED 1096 HY000&nbsp;&nbsp;<br />ER_TOO_BIG_SET 1097 HY000&nbsp;&nbsp;<br />ER_NO_UNIQUE_LOGFILE 1098 HY000&nbsp;&nbsp;<br />ER_TABLE_NOT_LOCKED_FOR_WRITE 1099 HY000&nbsp;&nbsp;<br />ER_TABLE_NOT_LOCKED 1100 HY000&nbsp;&nbsp;<br />ER_BLOB_CANT_HAVE_DEFAULT 1101 42000&nbsp;&nbsp;<br />ER_WRONG_DB_NAME 1102 42000&nbsp;&nbsp;<br />ER_WRONG_TABLE_NAME 1103 42000&nbsp;&nbsp;<br />ER_TOO_BIG_SELECT 1104 42000&nbsp;&nbsp;<br />ER_UNKNOWN_ERROR 1105 HY000&nbsp;&nbsp;<br />ER_UNKNOWN_PROCEDURE 1106 42000&nbsp;&nbsp;<br />ER_WRONG_PARAMCOUNT_TO_PROCEDURE 1107 42000&nbsp;&nbsp;<br />ER_WRONG_PARAMETERS_TO_PROCEDURE 1108 HY000&nbsp;&nbsp;<br />ER_UNKNOWN_TABLE 1109 42S02&nbsp;&nbsp;<br />ER_FIELD_SPECIFIED_TWICE 1110 42000&nbsp;&nbsp;<br />ER_INVALID_GROUP_FUNC_USE 1111 42000&nbsp;&nbsp;<br />ER_UNSUPPORTED_EXTENSION 1112 42000&nbsp;&nbsp;<br />ER_TABLE_MUST_HAVE_COLUMNS 1113 42000&nbsp;&nbsp;<br />ER_RECORD_FILE_FULL 1114 HY000&nbsp;&nbsp;<br />ER_UNKNOWN_CHARACTER_SET 1115 42000&nbsp;&nbsp;<br />ER_TOO_MANY_TABLES 1116 HY000&nbsp;&nbsp;<br />ER_TOO_MANY_FIELDS 1117 HY000&nbsp;&nbsp;<br />ER_TOO_BIG_ROWSIZE 1118 42000&nbsp;&nbsp;<br />ER_STACK_OVERRUN 1119 HY000&nbsp;&nbsp;<br />ER_WRONG_OUTER_JOIN 1120 42000&nbsp;&nbsp;<br />ER_NULL_COLUMN_IN_INDEX 1121 42000&nbsp;&nbsp;<br />ER_CANT_FIND_UDF 1122 HY000&nbsp;&nbsp;<br />ER_CANT_INITIALIZE_UDF 1123 HY000&nbsp;&nbsp;<br />ER_UDF_NO_PATHS 1124 HY000&nbsp;&nbsp;<br />ER_UDF_EXISTS 1125 HY000&nbsp;&nbsp;<br />ER_CANT_OPEN_LIBRARY 1126 HY000&nbsp;&nbsp;<br />ER_CANT_FIND_DL_ENTRY 1127 HY000&nbsp;&nbsp;<br />ER_FUNCTION_NOT_DEFINED 1128 HY000&nbsp;&nbsp;<br />ER_HOST_IS_BLOCKED 1129 HY000&nbsp;&nbsp;<br />ER_HOST_NOT_PRIVILEGED 1130 HY000&nbsp;&nbsp;<br />ER_PASSWORD_ANONYMOUS_USER 1131 42000&nbsp;&nbsp;<br />ER_PASSWORD_NOT_ALLOWED 1132 42000&nbsp;&nbsp;<br />ER_PASSWORD_NO_MATCH 1133 42000&nbsp;&nbsp;<br />ER_UPDATE_INFO 1134 HY000&nbsp;&nbsp;<br />ER_CANT_CREATE_THREAD 1135 HY000&nbsp;&nbsp;<br />ER_WRONG_VALUE_COUNT_ON_ROW 1136 21S01&nbsp;&nbsp;<br />ER_CANT_REOPEN_TABLE 1137 HY000&nbsp;&nbsp;<br />ER_INVALID_USE_OF_NULL 1138 42000&nbsp;&nbsp;<br />ER_REGEXP_ERROR 1139 42000&nbsp;&nbsp;<br />ER_MIX_OF_GROUP_FUNC_AND_FIELDS 1140 42000&nbsp;&nbsp;<br />ER_NONEXISTING_GRANT 1141 42000&nbsp;&nbsp;<br />ER_TABLEACCESS_DENIED_ERROR 1142 42000&nbsp;&nbsp;<br />ER_COLUMNACCESS_DENIED_ERROR 1143 42000&nbsp;&nbsp;<br />ER_ILLEGAL_GRANT_FOR_TABLE 1144 42000&nbsp;&nbsp;<br />ER_GRANT_WRONG_HOST_OR_USER 1145 42000&nbsp;&nbsp;<br />ER_NO_SUCH_TABLE 1146 42S02&nbsp;&nbsp;<br />ER_NONEXISTING_TABLE_GRANT 1147 42000&nbsp;&nbsp;<br />ER_NOT_ALLOWED_COMMAND 1148 42000&nbsp;&nbsp;<br />ER_SYNTAX_ERROR 1149 42000&nbsp;&nbsp;<br />ER_DELAYED_CANT_CHANGE_LOCK 1150 HY000&nbsp;&nbsp;<br />ER_TOO_MANY_DELAYED_THREADS 1151 HY000&nbsp;&nbsp;<br />ER_ABORTING_CONNECTION 1152 08S01&nbsp;&nbsp;<br />ER_NET_PACKET_TOO_LARGE 1153 08S01&nbsp;&nbsp;<br />ER_NET_READ_ERROR_FROM_PIPE 1154 08S01&nbsp;&nbsp;<br />ER_NET_FCNTL_ERROR 1155 08S01&nbsp;&nbsp;<br />ER_NET_PACKETS_OUT_OF_ORDER 1156 08S01&nbsp;&nbsp;<br />ER_NET_UNCOMPRESS_ERROR 1157 08S01&nbsp;&nbsp;<br />ER_NET_READ_ERROR 1158 08S01&nbsp;&nbsp;<br />ER_NET_READ_INTERRUPTED 1159 08S01&nbsp;&nbsp;<br />ER_NET_ERROR_ON_WRITE 1160 08S01&nbsp;&nbsp;<br />ER_NET_WRITE_INTERRUPTED 1161 08S01&nbsp;&nbsp;<br />ER_TOO_LONG_STRING 1162 42000&nbsp;&nbsp;<br />ER_TABLE_CANT_HANDLE_BLOB 1163 42000&nbsp;&nbsp;<br />ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 1164 42000&nbsp;&nbsp;<br />ER_DELAYED_INSERT_TABLE_LOCKED 1165 HY000&nbsp;&nbsp;<br />ER_WRONG_COLUMN_NAME 1166 42000&nbsp;&nbsp;<br />ER_WRONG_KEY_COLUMN 1167 42000&nbsp;&nbsp;<br />ER_WRONG_MRG_TABLE 1168 HY000&nbsp;&nbsp;<br />ER_DUP_UNIQUE 1169 23000&nbsp;&nbsp;<br />ER_BLOB_KEY_WITHOUT_LENGTH 1170 42000&nbsp;&nbsp;<br />ER_PRIMARY_CANT_HAVE_NULL 1171 42000&nbsp;&nbsp;<br />ER_TOO_MANY_ROWS 1172 42000&nbsp;&nbsp;<br />ER_REQUIRES_PRIMARY_KEY 1173 42000&nbsp;&nbsp;<br />ER_NO_RAID_COMPILED 1174 HY000&nbsp;&nbsp;<br />ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE 1175 HY000&nbsp;&nbsp;<br />ER_KEY_DOES_NOT_EXITS 1176 HY000&nbsp;&nbsp;<br />ER_CHECK_NO_SUCH_TABLE 1177 42000&nbsp;&nbsp;<br />ER_CHECK_NOT_IMPLEMENTED 1178 42000&nbsp;&nbsp;<br />ER_CANT_DO_THIS_DURING_AN_TRANSACTION 1179 25000&nbsp;&nbsp;<br />ER_ERROR_DURING_COMMIT 1180 HY000&nbsp;&nbsp;<br />ER_ERROR_DURING_ROLLBACK 1181 HY000&nbsp;&nbsp;<br />ER_ERROR_DURING_FLUSH_LOGS 1182 HY000&nbsp;&nbsp;<br />ER_ERROR_DURING_CHECKPOINT 1183 HY000&nbsp;&nbsp;<br />ER_NEW_ABORTING_CONNECTION 1184 08S01&nbsp;&nbsp;<br />ER_DUMP_NOT_IMPLEMENTED 1185 HY000&nbsp;&nbsp;<br />ER_FLUSH_MASTER_BINLOG_CLOSED 1186 HY000&nbsp;&nbsp;<br />ER_INDEX_REBUILD 1187 HY000&nbsp;&nbsp;<br />ER_MASTER 1188 HY000&nbsp;&nbsp;<br />ER_MASTER_NET_READ 1189 08S01&nbsp;&nbsp;<br />ER_MASTER_NET_WRITE 1190 08S01&nbsp;&nbsp;<br />ER_FT_MATCHING_KEY_NOT_FOUND 1191 HY000&nbsp;&nbsp;<br />ER_LOCK_OR_ACTIVE_TRANSACTION 1192 HY000&nbsp;&nbsp;<br />ER_UNKNOWN_SYSTEM_VARIABLE 1193 HY000&nbsp;&nbsp;<br />ER_CRASHED_ON_USAGE 1194 HY000&nbsp;&nbsp;<br />ER_CRASHED_ON_REPAIR 1195 HY000&nbsp;&nbsp;<br />ER_WARNING_NOT_COMPLETE_ROLLBACK 1196 HY000&nbsp;&nbsp;<br />ER_TRANS_CACHE_FULL 1197 HY000&nbsp;&nbsp;<br />ER_SLAVE_MUST_STOP 1198 HY000&nbsp;&nbsp;<br />ER_SLAVE_NOT_RUNNING 1199 HY000&nbsp;&nbsp;<br />ER_BAD_SLAVE 1200 HY000&nbsp;&nbsp;<br />ER_MASTER_INFO 1201 HY000&nbsp;&nbsp;<br />ER_SLAVE_THREAD 1202 HY000&nbsp;&nbsp;<br />ER_TOO_MANY_USER_CONNECTIONS 1203 42000&nbsp;&nbsp;<br />ER_SET_CONSTANTS_ONLY 1204 HY000&nbsp;&nbsp;<br />ER_LOCK_WAIT_TIMEOUT 1205 HY000&nbsp;&nbsp;<br />ER_LOCK_TABLE_FULL 1206 HY000&nbsp;&nbsp;<br />ER_READ_ONLY_TRANSACTION 1207 25000&nbsp;&nbsp;<br />ER_DROP_DB_WITH_READ_LOCK 1208 HY000&nbsp;&nbsp;<br />ER_CREATE_DB_WITH_READ_LOCK 1209 HY000&nbsp;&nbsp;<br />ER_WRONG_ARGUMENTS 1210 HY000&nbsp;&nbsp;<br />ER_NO_PERMISSION_TO_CREATE_USER 1211 42000&nbsp;&nbsp;<br />ER_UNION_TABLES_IN_DIFFERENT_DIR 1212 HY000&nbsp;&nbsp;<br />ER_LOCK_DEADLOCK 1213 40001&nbsp;&nbsp;<br />ER_TABLE_CANT_HANDLE_FULLTEXT 1214 HY000&nbsp;&nbsp;<br />ER_CANNOT_ADD_FOREIGN 1215 HY000&nbsp;&nbsp;<br />ER_NO_REFERENCED_ROW 1216 23000&nbsp;&nbsp;<br />ER_ROW_IS_REFERENCED 1217 23000&nbsp;&nbsp;<br />ER_CONNECT_TO_MASTER 1218 08S01&nbsp;&nbsp;<br />ER_QUERY_ON_MASTER 1219 HY000&nbsp;&nbsp;<br />ER_ERROR_WHEN_EXECUTING_COMMAND 1220 HY000&nbsp;&nbsp;<br />ER_WRONG_USAGE 1221 HY000&nbsp;&nbsp;<br />ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1222 21000&nbsp;&nbsp;<br />ER_CANT_UPDATE_WITH_READLOCK 1223 HY000&nbsp;&nbsp;<br />ER_MIXING_NOT_ALLOWED 1224 HY000&nbsp;&nbsp;<br />ER_DUP_ARGUMENT 1225 HY000&nbsp;&nbsp;<br />ER_USER_LIMIT_REACHED 1226 42000&nbsp;&nbsp;<br />ER_SPECIFIC_ACCESS_DENIED_ERROR 1227 HY000&nbsp;&nbsp;<br />ER_LOCAL_VARIABLE 1228 HY000&nbsp;&nbsp;<br />ER_GLOBAL_VARIABLE 1229 HY000&nbsp;&nbsp;<br />ER_NO_DEFAULT 1230 42000&nbsp;&nbsp;<br />ER_WRONG_VALUE_FOR_VAR 1231 42000&nbsp;&nbsp;<br />ER_WRONG_TYPE_FOR_VAR 1232 42000&nbsp;&nbsp;<br />ER_VAR_CANT_BE_READ 1233 HY000&nbsp;&nbsp;<br />ER_CANT_USE_OPTION_HERE 1234 42000 </p><p>ER_NOT_SUPPORTED_YET 1235 42000&nbsp;&nbsp;<br />ER_MASTER_FATAL_ERROR_READING_BINLOG 1236 HY000&nbsp;&nbsp;<br />ER_WRONG_FK_DEF 1237 42000&nbsp;&nbsp;<br />ER_KEY_REF_DO_NOT_MATCH_TABLE_REF 1238 HY000&nbsp;&nbsp;<br />ER_CARDINALITY_COL 1239 21000&nbsp;&nbsp;<br />ER_SUBSELECT_NO_1_ROW 1240 21000&nbsp;&nbsp;<br />ER_UNKNOWN_STMT_HANDLER 1241 HY000&nbsp;&nbsp;<br />ER_CORRUPT_HELP_DB 1242 HY000&nbsp;&nbsp;<br />ER_CYCLIC_REFERENCE 1243 HY000&nbsp;&nbsp;<br />ER_AUTO_CONVERT 1244 HY000&nbsp;&nbsp;<br />ER_ILLEGAL_REFERENCE 1245 42S22&nbsp;&nbsp;<br />ER_DERIVED_MUST_HAVE_ALIAS 1246 42000&nbsp;&nbsp;<br />ER_SELECT_REDUCED 1247 01000&nbsp;&nbsp;<br />ER_TABLENAME_NOT_ALLOWED_HERE 1248 42000&nbsp;&nbsp;<br />ER_NOT_SUPPORTED_AUTH_MODE 1249 08004&nbsp;&nbsp;<br />ER_SPATIAL_CANT_HAVE_NULL 1250 42000&nbsp;&nbsp;<br />ER_COLLATION_CHARSET_MISMATCH 1251 42000&nbsp;&nbsp;<br />ER_SLAVE_WAS_RUNNING 1252 HY000&nbsp;&nbsp;<br />ER_SLAVE_WAS_NOT_RUNNING 1253 HY000&nbsp;&nbsp;<br />ER_TOO_BIG_FOR_UNCOMPRESS 1254 HY000&nbsp;&nbsp;<br />ER_ZLIB_Z_MEM_ERROR 1255 HY000&nbsp;&nbsp;<br />ER_ZLIB_Z_BUF_ERROR 1256 HY000&nbsp;&nbsp;<br />ER_ZLIB_Z_DATA_ERROR 1257 HY000&nbsp;&nbsp;<br />ER_CUT_VALUE_GROUP_CONCAT 1258 HY000&nbsp;&nbsp;<br />ER_WARN_TOO_FEW_RECORDS 1259 01000&nbsp;&nbsp;<br />ER_WARN_TOO_MANY_RECORDS 1260 01000&nbsp;&nbsp;<br />ER_WARN_NULL_TO_NOTNULL 1261 01000&nbsp;&nbsp;<br />ER_WARN_DATA_OUT_OF_RANGE 1262 01000&nbsp;&nbsp;<br />ER_WARN_DATA_TRUNCATED 1263 01000&nbsp;&nbsp;<br />ER_WARN_USING_OTHER_HANDLER 1264 01000&nbsp;&nbsp;<br />ER_CANT_AGGREGATE_COLLATIONS 1265 42000&nbsp;&nbsp;<br />ER_DROP_USER 1266 42000&nbsp;&nbsp;<br />ER_REVOKE_GRANTS 1267 42000<br /></p>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/319.htm</link>
<title><![CDATA[PHP header用法大全（不断补充）]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Wed, 21 Mar 2012 03:09:41 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/319.htm</guid> 
<description>
<![CDATA[ 
	<span style="line-height: 17px; font-size: 13px">header(string string [, bool replace [, int http_response_code]] )函数用来发送一个原始 HTTP 标头。&nbsp;&nbsp; <p>可选参数 replace&nbsp;&nbsp;指明是替换掉前一条类似的标头还是增加一条相同类型的标头。默认为替换，但如果将其设为 <strong>FALSE</strong>&nbsp;&nbsp;则可以强制发送多个同类标头。<br />第二个可选参数 http_response_code 强制将 HTTP 响应代码设为指定值<br /><br />//用这个header指令来解决URL重写产生的404 header </p></span><p><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('HTTP/1.1 200 OK'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 页面没找到 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('HTTP/1.1 404 Not Found'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 访问受限 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('HTTP/1.1 403 Forbidden'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// The page moved permanently should be used for </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// all redrictions, because search engines know </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// what's going on and can easily update their urls. </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">//页面被永久删除，可以告诉搜索引擎更新它们的urls </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('HTTP/1.1 301 Moved Permanently'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 服务器错误 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('HTTP/1.1 500 Internal Server Error'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 重定向到一个新的位置 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Location: http://www.example.org/'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 延迟一段时间后重定向 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Refresh: 10; url=http://www.example.org/'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">echo 'You will be redirected in 10 seconds'; </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 也可以使用HTML语法来实现延迟 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Transfer-Encoding: binary'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 加载要下载的文件: </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">readfile('example.zip'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 禁止缓存当前文档: </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Pragma: no-cache'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 设置内容类型: </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: text/html; charset=iso-8859-1'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: text/html; charset=utf-8'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: text/plain'); // plain text file </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: image/jpeg'); // JPG picture </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: application/zip'); // ZIP file </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: application/pdf'); // PDF file </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) file </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('Content-Type: application/x-shockwave-flash'); // Flash animation </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">// 显示登录对话框，可以用来进行HTTP认证 </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('HTTP/1.1 401 Unauthorized'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">header('WWW-Authenticate: Basic realm=&quot;Top Secret&quot;'); </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">echo 'Text that will be displayed if the user hits cancel or '; </span><span style="line-height: 17px; font-size: 13px"><br /></span><span style="line-height: 17px; font-size: 13px">echo 'enters wrong login data';</span></p>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/318.htm</link>
<title><![CDATA[Function ereg() is deprecated Error 错误解决方案大全【转】]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Mon, 20 Feb 2012 03:38:29 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/318.htm</guid> 
<description>
<![CDATA[ 
	<p>在php5.3.0后的版本，取消了对ereg函数的支持，惹得若干程序需要改动，譬如我安装的zen-card1.3.8，颇不方便。</p><p>错误：<br /><strong>Deprecated</strong>: Function ereg() is deprecated in &hellip;&hellip;</p><p>解决方法一：<br />退回去用php5.2。（众人皆赞道：果是好法子！）</p><p>解决方法二：<br />继续用php5.3，但是修改devel/devel.modul的460行：<br />if ($errno &amp; (E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED)) &#123;<br />把丫deprecated错误给忽略掉。（众人皆又赞道：果&hellip;&hellip;果&hellip;&hellip;果是好法子！）</p><p>解决方法三：<br />动程序鸟，把ereg换成preg_match，ereg_replace也需得换成preg_replace。只得注意的是<br />ereg(&rsquo;^[0-9]&lsquo;&nbsp;&nbsp;&nbsp; 需修改成&nbsp;&nbsp; preg_match(&rsquo;/^[0-9]/&lsquo;)<br />无敌//必须加，哈哈。（众人皆俯首赞道：王道也！）</p>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/317.htm</link>
<title><![CDATA[回车（r）换行（n）的区别]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[web技术]]></category>
<pubDate>Sun, 29 Jan 2012 02:08:39 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/317.htm</guid> 
<description>
<![CDATA[ 
	[转]<br />Windows 采用 &#92;r&#92;n 是有原因的，Windows 采用了传统的英文打字机的模式。<br /><br />想想看英文打字机是如何换行的呢？英文打字机是选择将小车退回至起点，<br />这个过程称为回车（carriage return, CR），随后把小车调至下一行的位<br />置，这个过程称为换行（line feed, LF），这样就完成了英文打字机中换<br />行过程。<br /><br />回车（CR）在计算机中使用 ASCII 为 13 的字符来表示，换行（LF）使用<br />ASCII 为 10 的字符来表示。这也就是 Windows 的换行采用 &#92;r&#92;n 来表示<br />的原因。<br />
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/316.htm</link>
<title><![CDATA[养生：肉类的这几个部位千万不能吃]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[养生]]></category>
<pubDate>Wed, 11 Jan 2012 03:12:52 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/316.htm</guid> 
<description>
<![CDATA[ 
	核心提示：肉类是我们生活中必不可少的食物，而动物身上大部分的部位都能够用于食用，不过有些部位是你如何也不能吃的，否则容易生出健康问题。 <div><span style="font-size: small"><br /></span></div><div><img src="http://imgs.fetionpic.com/web/20120110/f9dc9b1f-8ab4-4e96-abe8-3d322615d31f.jpg" border="0" width="550" height="380" /></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 1、鱼&ldquo;黑衣&rdquo;不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 鱼体腹腔两侧有一层黑色膜衣，是最腥臭、泥土味最浓的部位，含有大量的类脂质、溶菌酶等物质。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 2、禽&ldquo;尖翅&rdquo;不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 鸡、鸭、鹅等禽类屁股上端长尾羽的部位，学名&ldquo;腔上囊&rdquo;，是淋巴腺体集中的地方，因淋巴腺中的巨噬细胞可吞食病菌和病毒，即使是致癌物质也能吞食，但不能分解，故禽&ldquo;尖翅&rdquo;是个藏污纳垢的&ldquo;仓库&rdquo;。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 3、猪脖子的肉疙瘩不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 食用时应易除猪脖子等处灰色、黄色或暗红色的肉疙瘩，即称为肉枣的东西，因为这些地方含有很多病菌和病毒，若食用则易感染疾病。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 4、鸡头不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 我国有句民谚：十年鸡头胜砒霜。为何鸡越老，鸡头毒性就越大呢？医学专家分析，其原因是鸡在啄食中会吃进有害的重金属物。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 5、鸡脖不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 鸡脖鸭脖不要吃皮，也不要吃到气管。这里面都含有大量的高胆固醇，所以最好不要吃这些部位。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 6、畜&ldquo;三腺&rdquo;不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 猪、牛、羊等动物体上的甲状腺、肾上腺、病变淋巴腺是三种&ldquo;生理性有害器官&rdquo;。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 7、羊&ldquo;悬筋&rdquo;：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 羊&ldquo;悬筋&rdquo;(又称&ldquo;蹄白珠&rdquo;)，一般为圆珠形、串粒状，是羊蹄内发生病变的一种组织。</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 8、兔&ldquo;臭腺&rdquo;不能吃：</span></div><div><span style="font-size: small"><br /></span></div><div><span style="font-size: small">&nbsp; &nbsp; 位于外生殖器背面两侧皮下的白鼠鼷腺，紧挨着白鼠鼷腺的褐色鼠鼷腺的褐色和位于直肠两侧壁上的直肠腺，味极腥臭，食用时若不除去，则会使兔肉难以下咽。</span></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/315.htm</link>
<title><![CDATA[中文地址的翻译原则]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[科普知识]]></category>
<pubDate>Tue, 09 Aug 2011 02:16:42 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/315.htm</guid> 
<description>
<![CDATA[ 
	<div class="pb5">中文地址的翻译原则 <br /><br />中文地址的排列顺序是由大到小，如：Ｘ国Ｘ省Ｘ市Ｘ区Ｘ路Ｘ号，而英文地址则刚好相反，是由小到大。如上例写成英文就是：Ｘ号，Ｘ路，Ｘ区，Ｘ市，Ｘ省，Ｘ国。掌握了这个原则，翻译起来就容易多了！ <br />Ｘ室　　Room　Ｘ <br />Ｘ号　　No.　Ｘ <br />Ｘ单元　Unit　Ｘ <br />Ｘ号楼　Building No.　Ｘ <br />Ｘ街　　Ｘ　Street <br />Ｘ路　　Ｘ　Road <br />Ｘ区　　Ｘ　District <br />Ｘ县　　Ｘ　County <br />Ｘ镇　　Ｘ　Town <br />Ｘ市　　Ｘ　City <br />Ｘ省　　Ｘ　Province <br />请注意：翻译人名、路名、街道名等，最好用拼音。 <br />中文地址翻译范例： <br />宝山区示范新村37号403室 <br />Room 403, No. 37, SiFang Residential Quarter, BaoShan District <br />虹口区西康南路125弄34号201室 <br />Room 201, No. 34, Lane 125, XiKang Road(South), HongKou District <br />473004河南省南阳市中州路42号 李有财 <br />Li Youcai <br />Room 42 <br />Zhongzhou Road, Nanyang City <br />Henan Prov. China 473004 <br />434000湖北省荆州市红苑大酒店 李有财 <br />Li Youcai <br />Hongyuan Hotel <br />Jingzhou city <br />Hubei Prov. China 434000 <br />473000河南南阳市八一路272号特钢公司 李有财 <br />Li Youcai <br />Special Steel Corp. <br />No. 272, Bayi Road, Nanyang City <br />Henan Prov. China 473000 <br />528400广东中山市东区亨达花园7栋702 李有财 <br />Li Youcai <br />Room 702, 7th Building <br />Hengda Garden, East District <br />Zhongshan, China 528400 <br />361012福建省厦门市莲花五村龙昌里34号601室 李有财 <br />Li Youcai <br />Room 601, No. 34 Long Chang Li <br />Xiamen, Fujian, China 361012 <br />361004厦门公交总公司承诺办 李有财 <br />Mr. Li Youcai <br />Cheng Nuo Ban, Gong Jiao Zong Gong Si <br />Xiamen, Fujian, China 361004 <br />266042山东省青岛市开平路53号国棉四厂二宿舍1号楼2单元204户甲 李有财 <br />Mr. Li Youcai <br />NO. 204, A, Building NO. 1 <br />The 2nd Dormitory of the NO. 4 State-owned Textile Factory <br />53 Kaiping Road, Qingdao, Shandong, China 266042 <br /><br /><br />中国地名英译的几点注意事项 <br /><br />地名是历史的产物，是国家领土主权的象征，是日常生活的向导，是社会交往的媒介。在信息化社会中，地名在国际政治、经济、外交、外贸、科技、文化交流、新闻出版以及社会生活方面都起着非常重要的作用。 <br />用汉语拼音字母拼写中国地名，不仅是中国的统一标准，而且是国际标准，全世界都要遵照使用。根据笔者英译中国地名的体会，本文拟谈谈中国地名英译的几点注意事项，供译者和读者参考。 <br />一、专名是单音节的英译法 <br />专名是单音节，通名也是单音节，这时通名应视作专名的组成部分，先音译并与专名连写，后重复意译，分写（汉字带点的字是通名，英语的画线部分是音译；括号内为该地所在省、市、地区或县，下同）例如： <br />1、恒山 Hengshan Mountain （山西） <br />2、淮河 the Huaihe River （河南、安徽、江苏） <br />3、巢湖 the Chaohu Lake （安徽） <br />4、渤海 the Bohai Sea （辽宁、山东） <br />5、韩江 the Hanjiang River （广东） <br />6、礼县 Lixian County （甘肃陇南地区） <br />二、通名专名化的英译法 <br />通名专名化主要指单音节的通名，如山、河、江、湖、海、港、峡、关、岛等，按专名处理，与专名连写，构成专名整体（汉语带点的字和英语的画线部分即为通名专名化）。例如： <br />1、都江堰市 Dujiangyan City （比较： the Dujiang Weir）（四川） <br />2、绥芬河市 Suifenhe City （比较：the Suifen River）（黑龙江） <br />3、白水江自然保护区 Baishuijiang Nature Reserve（比较：the baishui river）（甘肃） <br />4、青铜峡水利枢纽 Qingtongxia Water Control Project（比较：the Qingtong Gorge）（宁厦） <br />5、武夷山自然保护区 Wryishan Nature Reserve（比较：Wuyi Mountain）（福建） <br />6、西湖区风景名胜区 Scenic Spots and Historic Sites of Xihu（比较：the West lake）（浙江杭州） <br />三、通名是同一个汉字的多种英译法 <br />通名是单音节的同一个汉字，根据意义有多种不同英译法，在大多数情况下，这些英译词不能互相代换。例如： <br />1、山 <br />1）mount：峨眉山 Mount Emei（四川峨眉） <br />2）mountain：五台山Wutai Mountain（山西） <br />3）hill：象鼻山 the Elephant Hill（广西桂林） <br />4）island：大屿山 Lantau Island（香港） <br />5）range：念青唐古拉山 the Nyainqentanglha Range（西藏） <br />6）peak：拉旗山 Victoria Peak（香港） <br />7）rock：狮子山 Lion Rock（香港） <br />2、海 <br />1）sea：东海，the East China Sea <br />2）lake：邛海the Qionghai Lake（四川西昌） <br />3）horbour：大滩海Long Harbour（香港） <br />4）port：牛尾海Port Shelter（香港） <br />5）forest：蜀南竹海the Bamboo Forest in Southern Sichuan(四川长岭) <br />在某些情况下，根据通名意义，不同的汉字可英译为同一个单词。例如：&ldquo;江、河、川、水、溪&rdquo;英译为river。 <br />1、嘉陵江 the Jialing River（四川） <br />2、永定河 the Yongding River （河北、北京、天津） <br />3、螳螂川 the Tanglang River（云南） <br />4、汉水 the Hanshui River（陕西、湖北） <br />5、古田溪 the Gutian River（福建） <br />四、专名是同一个汉字的不同英译法 <br />专名中同一个汉字有不同的读音和拼写，据笔者不完全统计，地名中这样的汉字有七八十个之多，每个字在地名中的读音和拼写是固定的，英译者不能一见汉字就按语言词典的读音和拼写翻译，而只能按中国地名词典的读音和拼写进行翻译（画线部分为该字的读音和拼写）。例如： <br />1、陕 <br />陕西省 Shaanxi Province <br />陕县Shanxian County(河南) <br />2、洞 <br />洞庭湖the Dong Lake（湖南） <br />洪洞县Hongtong County（山西） <br />3、六 <br />六合县Luhe County（江苏） <br />六盘水市Liupanshui City（贵州） <br />4、荥 <br />荥阳市Xingyang City（河南） <br />荥经县Yingjing County（四川雅安地区） <br />5、林 <br />林甸县 Lindian County（黑龙江大庆市） <br />林芝地区 Nyingchi Prefecture（西藏） <br />林周县Lhunzhub County（西藏拉萨市） <br />米林县Mainling County（西藏林芝地区） <br />6、扎 <br />扎赉特旗Jalaid Banner（内蒙古兴安盟） <br />扎兰屯市Zalantun City（内蒙古呼伦贝尔盟） <br />扎囊县Chanang County（西藏山南地区） <br />扎龙自然保护区Zhalong Nature Reserve（黑龙江齐齐哈尔市） <br />扎达县Zanda County(西藏阿里地区) <br />扎陵湖the Gyaring Lake（青海） <br />五、专名是同样汉字的多种英译法 <br />专名中的汉字是相同的，但表示不同的地点，每个地点的读音和拼写是固定的，应按&ldquo;名从主人&rdquo;的原则译写，不能按普通语言词典，而必须按中国地名词典英译。例如： <br />1、浍河 <br />1）the Huihe River （河南、安徽） <br />2）the Kuaihe River（山西） <br />2、阿克乔克山 <br />1）Akqoka Mountain （新疆昭苏县） <br />2）Akxoki Mountain (新疆塔城市） <br />3、色拉寺 <br />1）the Sera Monastery（西藏拉萨市） <br />the Sula Temple（四川色达） <br />4、单城镇 <br />1）Dancheng Town(黑龙江双城县） <br />2）Shancheng Town（山东单县） <br />5、阿扎乡 <br />1)Arza Township（西藏嘉黎县） <br />2)Ngagzha Township（西藏扎囊县） <br />3）Ngarzhag Township（西藏浪卡子县） <br />6、柏城镇 <br />1)Bocheng Town（山东高密市） <br />2)Baicheng Town（河南西平县） <br />六、中国各民族名称的罗马字母拼写法 <br />1991 年8月30日，国家技术监督局批准了《中国各民族名称的罗马母拼法和代码》（GB3304?1），该标准适用于文献工作、拼音电报、国际通讯、出版、新闻 报导、信息处理和交换等方面，当然也适用于英译。特别值得一提的是，虽然汉字书写的民族名称有&ldquo;族&rdquo;字，但罗马字母拼写法无&ldquo;zu&rdquo;字的拼写，英译照抄， 首字母大写（见附录：中国各民族名犯法的罗马字母拼写法）。例如： <br />1、双江拉祜族佤族布朗族傣族自治县 <br />Lahu-Va-Blang-Dai Autonomous County of Shuangjiang(云南临沧地区) <br />2、贡山独龙族怒族自治县 <br />Derung-Nu Autonomous County Gongshan（西南怒江） <br />3、湘西土家族苗族自治州 <br />Tujia-Miao Autonomous Prefecture of Xinangxi（湖南） <br />4、金秀瑶族自治县Yao Autonomous County of Jinxiu（广西柳州地区） <br />此外，朝族和藏族的罗马字母拼写法，对外分别使用Korean和Tibetan例如： <br />5、延边朝鲜族自治州 <br />Korean Autonomous Prefecture of Yanbian（吉林） <br />6、甘孜藏族自治州 <br />Tibetan Autonomous Prefecture of Garze（四川） <br />需要指出的是，如果专指&ldquo;XX族&rdquo;通常就要译出&ldquo;族&rdquo;字。例如： <br />回族the Hui nationality( 或the Huis) <br />彝族the Yi nationality(或the Yis) <br />藏族the Zang (Tibetan) nationality(或the Zangs,the Tibetans) <br />但是，如果作形容词修饰名词，则又可省略&ldquo;族&rdquo;字。例如：维吾尔族医学Uygur medicine 彝族人the Yi people <br />七、以人名命名的地名英译法 <br />以人名命名的地名英译，人名的姓和名连写，人名必须位置，通名后置，不加定冠词。这种译法多用于自然地理实全地名，但有例外。例如： <br />1、张广才岭Zhangguangcai Mountain（吉林、黑龙江） <br />2、欧阳海水库存 Ouyanghai Reservoir（湖南桂阳） <br />3、郑和群礁 Zhenghe Reefs（湖南南沙群岛） <br />4、李准滩Lizhun Bank （海南南沙群岛） <br />5、鲁班暗沙 （海南中沙群岛） <br />6、左权县 （山西晋中地区） <br />7、武则天明堂 （河南洛阳） <br />如果以人名命名的非自然地理实体地名，姓和名分写，人名前置或后置按习惯用法，大致有以下三种译法： <br />1、人名+通名 <br />黄继光纪念馆Huang Jiguang Memorial（四川中江县） <br />2、人名&rsquo;S+通名 <br />中山陵墓Sun Yat-sen&rsquo; s Mausoleum（江苏南京市） <br />3、the+通名+of人名 <br />昭君墓the Tomb of Wang Zhaojun（内蒙古呼和浩特市） <br />八、少数民族语地名的记音用加符字母 <br />地名记音的时个符号可以加在特定的字母上面，代表特殊语音。蒙古语、维吉尔语和藏语音译转写的汉语拼音字母有无符和加符并列的，一般拼写用无符字母，地名记音用加符字母。例如： <br />乌鲁木齐市Urumqi City（新疆） 巩乃斯河Kunse River（新疆新源） 察隅县Zayu County（西藏林芝地区） <br />改则县 Gerze County（西藏阿里地区） 德格县Dege County（四川甘孜） 甘德县Gade County （青海果洛） <br />九、地名中的符事情不能省略 <br />地名中的符号如果省略就会造成读音甚至语义错误。地名中有两种符号不能省略。 <br />I，a，o，e开头的音节连接在其他音节后面的时候，如杲音节的界限委生混淆，用隔音符号，地名中的隔音符号不能省略。例如： <br />1）（陕西）西安市Xi&rsquo;an City（如果省略隔音符号，就成为Xian，可以读成仙、先、现、限、鲜、险、县等） <br />2）（广西）兴安县Xing&rsquo;an County（如果省略隔音符号，就成为Xingan County 新干县，在江西吉安地区） <br />3）建瓯市Jian&rsquo;ou City（福建） <br />4）第二松花江the Di&rsquo;er Songhua River（吉林） <br />5）东阿县Dong&rsquo;e County（山东聊城市） <br />6）天峨县Tian&rsquo;e County（广西河池地区） <br />2、汉语拼音U行的韵母跟声母n，l拼的时候，U上面的两点不能省略。如果省略，就会造成误解。例如： <br />1、（山西）闾河the Luhe River（如果省略U上面的两点，就变成the Luhe River 芦河、在江西） <br />2、（台湾）绿岛Ludao Island（如果省略U上面的两点，就变成Ludao Island 鹭岛，在黑龙江海林） <br />3、女山湖the Nushan Lake（安徽嘉山） <br />4、吕梁地区Luliang Prefecture（山西） <br />5、旅顺港Lushun Port（辽宁） <br />但是也有例外。例如： <br />绿春县Luchun County（云南红河） 绿曲县Luqu County（甘肃甘南） <br /><br /><br /><br />中国地址英文翻译入门篇 <br /><br />第一部分、中国地址翻译单项讲座 <br />***室 / 房 Room *** <br />***村 *** Vallage <br />***号 No. *** <br />***号宿舍 *** Dormitory <br />***楼 / 层 *** /F <br />***住宅区 / 小区：*** Residential Quater／Community <br />甲／乙／丙／丁或者A ／B／C／D ***巷 / 弄：Lane *** <br />***单元：Unit *** <br />***号楼 / 栋：*** Building <br />***公司：***Com.／*** Crop／***CO.LTD <br />***厂：*** Factory <br />***酒楼/酒店：*** Hotel <br />***路：*** Road <br />***花园：*** Garden <br />***街：*** Stree <br />***信箱：Mailbox *** <br />***区：*** District <br />***县：*** County <br />***镇：*** Town <br />***市：*** City <br />***省：*** Prov. <br />***院：***Yard <br />***大学：***College <br /><br />实例 <br />201室: Room 201 <br />12号: No.12 <br />2单元: Unit 2 <br />3号楼: Building No.3 <br />长安街: Chang An street <br />南京路: Nanjing road <br />长安公司: Chang An Company <br />宝山区: BaoShan District <br />赵家酒店: ZhaoJia hotel <br />钱家花园: Qianjia garden <br />孙家县: Sunjia county <br />李家镇: Lijia town <br />广州市: Guangzhou city <br />广东省: Guangdong province <br /><br />第二部分、地址翻译实例： <br />宝山区南京路12号3号楼201室 <br />Room 201, Building No.3, No.12, Nanjing Road，BaoShan District <br />如果地方不够可以将3号楼201室写成：3-201 <br /><br />宝山区示范新村37号403室 <br />Room 403, No.37, SiFan Residential Quarter, BaoShan District <br /><br />中华人民共和国民政部政策研究中心北京河沿大街147号 <br />No.147# HeiYian Street the policy center of civil administration <br />department the People&rsquo;Republic of China <br /><br />虹口区西康南路125弄34号201室 <br />Room 201,No.34,Lane 125,XiKang Road(South),HongKou District <br /><br />北京市崇文区天坛南里西区20楼3单元101 <br />Room 3-101 building No.20,TianTan-NanXiLi Residential ChongWen <br />District BeiJing City <br /><br />江苏省扬州市宝应县泰山东村102栋204室 <br />Room 204 building No.102, East TaiShan Residential BaoYin County <br />JiangSu Province <br /><br />473004河南省南阳市中州路42号 周旺财 <br />Zhou Wangcai <br />Room 42， <br />Zhongzhou Road，Nanyang City， <br />Henan Prov.China 473004 <br /><br />中国四川省江油市川西北矿区采气一队 <br />1 Team CaiQi ChuanXiBei Mining Area JiangYou City SiChuan Province <br />China <br /><br />中国河北省邢台市群众艺术馆 <br />The Masses Art Centre XinTai City HeBei Prov.China <br /><br />江苏省吴江市平望镇联北村七组 <br />7 Group LiBei Village PingWang Town WeJiang City JiangSu Province <br /><br />434000湖北省荆州市红苑大酒店 周旺财 <br />Zhou Wangcai <br />Hongyuan Hotel, <br />Jingzhou city, <br />Hubei Prov. China 434000 <br /><br />473000河南南阳市八一路272号特钢公司 周旺财 <br />Zhou Wangcai <br />Special Steel Corp，No.272， <br />Bayi Road，Nanyang City， <br />Henan Prov. China 473000 <br /><br />528400广东中山市东区亨达花园7栋702 周旺财 <br />Zhou Wangcai <br />Room 702, 7th Building, <br />Hengda Garden, East District, <br />Zhongshan, China 528400 <br /><br />361012福建省厦,雨水砸在窗口上的铁罩，紧凑又零乱地打击。我收下衣物，挂在卧室客厅的衣橱里，每件衣服都隔着一定距离，并且，保持门市莲花五村龙昌里34号601室 周旺财 <br />Zhou Wangcai <br />Room 601, No.34 Long Chang Li, <br />Xiamen, Fujian, China 361012 <br /><br />361004厦,雨水砸在窗口上的铁罩，紧凑又零乱地打击。我收下衣物，挂在卧室客厅的衣橱里，每件衣服都隔着一定距离，并且，保持门公交总公司承诺办 周旺财 <br />Mr. Zhou Wangcai <br />Cheng Nuo Ban, Gong Jiao Zong Gong Si <br />Xiamen, Fujian, China 361004 <br /><br />266042山东省青岛市开平路53号国棉四厂二宿舍1号楼2单元204户甲周旺财 <br />Mr. Zhou Wangcai <br />NO. 204, A, Building NO. 1, <br />The 2nd Dormitory of the NO. 4 State-owned Textile Factory, <br />53 Kaiping Road, Qingdao, <br />Shandong, China 266042 <br /><br /><br /><br />名片英语之地址英译 <br /><br />1、地址综述名片的主要功能是通联，所以在名片上写上详细的家庭或单位通讯地址是必不可少的。如下例：住址：浙江省台州市黄岩区天长路18号201 室翻译成英文就是：Address: Room 201, 18 Tianchang Road, Huangyan District, Taizhou City, Zhejiang Province.对照上例，翻译时有几点需要注意：中文地址的排列顺序是由大到小：&times;国&times;省&times;市&times;区&times;路&times;号，而英文地址则刚好相反，是由小到大：&times;号 &times;路（Road），&times;区(District)，&times;市(City)，&times;省(Province)，&times;国。 <br /><br />地名专名部分（如&rdquo;黄岩区&rdquo;的&rdquo;黄岩&rdquo;部分）应使用汉语拼音，且需连写，如Huangyan不宜写成 Huang Yan。各地址单元间要加逗号隔开。 <br /><br />以上给出了地点翻译的书写规则。接下去就地址内容进行详细分析。 <br /><br />完整的地址由：行政区划＋街区名＋楼房号三部分组成。 <br /><br />2、行政区划英译行政区划是地址中最高一级单位，我国幅员辽阔，行政区划较复杂，总体上可分成五级(括号内所注为当前国内通用译名)： <br />1)国家（State）：中华人民共和国（the People&rsquo;s Republic of China； P.R.China； P.R.C； China） <br />2)省级（Provincial Level）:省(Province)、自治区(Autonomous Region )、直辖市(Municipality directly under the Central Government,简称Municipality)；特别行政区（Special Administration Region； SAR） <br />3)地级（Prefectural Level）:地区(Prefecture)、自治州(Autonomous Prefecture)、市（Municipality；City）；盟（Prefecture）； <br />4)县级（County Level）：县（County）、自治县（Autonomous County）、市（City）、市辖区（District）,旗（County） <br />5)乡级（Township Level）：乡（Township）、民族乡(Ethnic Township)、镇(Town)、街道办事处（Sub-district）。 <br /><br />应用举例： <br /><br />(1)上海市崇明县中兴镇：Zhongxing Town, Chongming County, Shanghai (Municipality). <br /><br />(2)内蒙古自治区呼伦贝尔盟：Hulunbeir Prefecture，Inner Mongolia Autonomous Region. <br /><br />(3)浙江省台州市玉环县龙溪乡：Longxi Township, Yuhuan County, Taizhou Municipality, Zhejiang Province. <br /><br />(4)苏州市金阊区金门街道：Jinmen Sub-district, Jinchang District, Suzhou City. <br /><br />略写和缩写 <br /><br />1）中国人写地址喜欢将省或市等都一一注明，但按英语习惯，则可以省略；况且，省一级及较大的市大家都熟知，其后的行政区域通名完全可以略去而不致引起理解困难；如果需要进一步简化，则以此类推，可将一些县甚至镇的区域名也省掉。 <br /><br />如：中国浙江省杭州市余杭区&times;&times;乡 <br /><br />&times;&times;Township, Yuhang, Hangzhou, Zhejiang, P.R.C. <br /><br />2）在地址中间可直接插入邮编。 <br /><br />我国的通行写法是将邮政编码另起一行，前面标上&rdquo;邮编（Postal Code； Zip； P.C.）&rdquo;两字，但英美各国的惯例却是将邮编直接写在州或城市的后面，如：美国：1120 Lincoln Street, Denver, CO 80203，USA（中译：美国科罗拉多州丹佛市林肯街第1120号，邮编：80203）注：CO是美国Colorado州的缩写，在跟邮政编码合用时， 州名一般均以缩写形式出现。 <br /><br />英国：60 Queen Victoria Street， London EC4N 4TW（中译：伦敦维多利亚女王大街60号，邮编：EC4N 4TW）由此，笔者提议，我们的地名如果也参照英美各国的方法，将邮编插入到地址中间，可以节省大量空间。 <br /><br />如：中国浙江省台州市黄椒路102号，邮编：318020，102 Huangjiao Road, Taizhou, Zhejiang 318020,China。 <br /><br />3、省市缩写由于有了邮编，所以城市或省的专名也可采用缩写而不会造成混乱，除了香港（Hong Kong HK）、澳门（Macao MO）、台湾（Taiwan TW），我国大陆各省一直没有广泛认同的英文缩写。可喜的是，为扩展互联网域名资源，信息产业部于二○○二年十一月二十二日发布了《关于中国互联网络域名体系公告》，公告中首次开放行政区域类二级国内域名，给全国34个省（市、自治区、特别行政区）规定了二个字母的代码；笔者认为，随着互联网的深入发展，该代码将自然而然地成为各省区的缩写名称，可以放心使用；信息产业部采用的代码与英译名缩写基本上吻合，只有内蒙古（英译：Inner Mongolia,缩写：IM,而信息部的代码是利用了纯汉语拼音，为NM）、西的衣物，其中一件淡绿细直纹短袖我最喜欢。之前两天它都区别其它的短袖，单件掺着洗衣粉放在红色小塑料桶浸泡，现在应藏（英译：Tibet,而二级域名使用的仍是汉语拼音XZ）两个词出现不协调现象，但这并不影响该缩写系统的推广。 <br /><br />应用举例： <br /><br />中国河北省石家庄市桥东区胜利北大街2号，邮编: 050021，2 North Shengli Avenue, Qiaodong District, Shijiazhuang City, HE050021, P.R.C. <br /><br />4、村居街道的英译居于地址体系的中间位置的是一些传统的村居街道及新兴的各种小区、新村、工业区等，其中&rdquo;村（委会）&rdquo;、&rdquo;居（委会）&rdquo;既是区域名称，又是行政体系的基层组织名称。 <br /><br />5、楼房室号的表达地址的最低一级涉及到对具体场所的命名及房号的标注。如：5幢302室、3号楼2单元102室。 <br /><br />这里的&rdquo;幢&rdquo;、&rdquo;栋&rdquo;、&rdquo;&hellip;号楼&rdquo;实际上是同一回事，一般均以Building&hellip;来表示；&rdquo;室&rdquo;一般译作Room或Suite。 <br /><br />上述两例可分别译成：Suite 302, Building 5；Room 102, Unit 2, Building 3。 <br /><br />此外，在这一级地址中还经常出现诸如&rdquo;单元&rdquo;、&rdquo;&hellip;大厦&rdquo;、&rdquo;&hellip;层&rdquo;等术语. <br /><br />应用举例：东一办公楼五层1－3室，Rm. 1-3, 5/F, Office Building E1。 <br /><br />注①：Suite :套房，即a connected series of rooms to be used together(Webster&rsquo;s )。Room：A portion of space within a building or other structure, separated by walls or partitions From other parts。Suite往往由多个room组成，如a three room suite。目前我们普遍使用的几号室（房），往往都是套房，故我们在翻译房号时，不能为其后缀是&rdquo;房&rdquo;或&rdquo;室&rdquo;所左右，应尽量根据实际情况选择 suite或room。 <br /><br />举一个英国地址为例： <br /><br />Address:Suite 13, Unit 2, Hendy Industrial Estate, Pontardulais. <br /><br />可知：江苏省丹阳市丁巷48弄3号 <br />No.3,Lane 48,DanYang City,JiangSu Prov.,China <br /><br /></div><div class="twsj">公司的译法 <br /><br />1. line(s) （轮船、航空、航运等）公司 <br />Atlantic Container Line大西洋集装箱海运公司 <br />Hawaiian air Lines 夏威夷航空公司 <br /><br />2. agency 公司、代理行 <br />The Austin advertising Agency 奥斯汀广告公司 <br />China Ocean Shipping Agency 中国外轮代理公司 <br /><br />3. store(s) 百货公司 <br />Great Universal Store 大世界百货公司（英） <br />Tesco Stores (Holdings) 坦斯科百货公司（英） <br /><br />4. associates（联合）公司 <br />British Nuclear Associates 英国核子联合公司 <br />Subsea equipment Associates Ltd.海底设备联合有限公司（英、法、美合办） <br /><br />5. system（广播、航空等）公司 <br />Mutual Broadcasting System相互广播公司（美） <br />Malaysian Airline System Bhd.马来西亚航空公司 <br /><br />6. office公司，多与 head, home, branch等词连用 <br />3M China Limited Guangzhou Branch Office 3M中国有限公司广州分公司 <br />China Books Import and Export Corporation (Head Office) 中国图书进出口总公司 <br /><br />7. service(s)（服务）公司 <br />Africa-New Zealand Service 非洲&mdash;新西兰服务公司 <br />Tropic Air Services特罗皮克航空公司 <br /><br />8. exchange <br />American Manufacturers Foreign Credit Insurance Exchange 美国制造商出口信用保险公司 <br /><br /><br />9. center <br />Binks (Shanghai) Engineering Exhibition Center, Ltd. <br />宾克斯（上海）涂装工程设备展示有限公司 <br /></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/314.htm</link>
<title><![CDATA[param标签 AllowScriptAccess 属性用法详解]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[web技术]]></category>
<pubDate>Tue, 09 Aug 2011 01:57:57 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/314.htm</guid> 
<description>
<![CDATA[ 
	&lt;param&nbsp;name=&quot;allowScriptAccess&quot;&nbsp;value=&quot;sameDomain&quot;&nbsp;/&gt;<br />&nbsp;<br />&nbsp;&nbsp; AllowScriptAccess 参数说明：<br />&nbsp;&nbsp;&nbsp; always 允许随时执行脚本操作。<br />&nbsp;&nbsp;&nbsp; never 禁止所有脚本执行操作。<br />&nbsp;&nbsp;&nbsp; samedomain 只有在 Flash 应用程序来自与 HTML 页相同的域时才允许执行脚本操作。<br /><br /><p>&nbsp;&nbsp;&nbsp; 使用 allowscriptaccess 使 Flash 应用程序可与其所在的 HTML 页通信。此参数是必需的，因为 fscommand() 和 getURL() 操作可能导致 JavaScript 使用 HTML 页的权限，而该权限可能与 Flash 应用程序的权限不同。这与跨域安全性有着重要关系。</p><p>&nbsp;&nbsp;&nbsp; 也就是说如果swf在aaaa.cn下，但是页面bbbb.cn下，想用getURL或者fscommand调用页面中的js是不可以的,除非你将value设置为always。<br /><br />注：一般情况下建议设置为samedomain。</p>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/313.htm</link>
<title><![CDATA[PHP 判断是否是一维数组]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Wed, 15 Jun 2011 08:14:36 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/313.htm</guid> 
<description>
<![CDATA[ 
	PHP 判断是否是一维数组<br /><br /><div id="blog_text" class="cnt"><p>$a 是一个数组变量</p><p>用count($a)与count($a,<strong><span style="font-family: Courier New">COUNT_RECURSIVE)（或者count($a,1)）是否相等来判断是否是一维数组</span></strong></p><p><span style="color: #000000"><span style="font-family: Courier New"><span style="color: #000000"><span style="color: #0000bb">$food </span><span style="color: #007700">= array(</span><span style="color: #dd0000">'fruits'&nbsp;&nbsp;</span><span style="color: #007700">=&gt; array(</span><span style="color: #dd0000">'orange'</span><span style="color: #007700">, </span><span style="color: #dd0000">'banana'</span><span style="color: #007700">, </span><span style="color: #dd0000">'apple'</span></span></span><span style="font-family: Courier New"><span style="color: #007700"><span style="color: #000000">), <br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #dd0000">'veggie'&nbsp;&nbsp;</span><span style="color: #007700">=&gt; array(</span><span style="color: #dd0000">'carrot'</span><span style="color: #007700">, </span><span style="color: #dd0000">'collard'</span><span style="color: #007700">,</span><span style="color: #dd0000">'pea'</span></span><span style="color: #007700"><span style="font-family: Courier New">)); <br /><br /></span></span><span style="font-family: Courier New"><span style="color: #ff8000">// recursive count <br /></span><span style="color: #007700">echo </span><span style="color: #0000bb">count</span><span style="color: #007700">(</span><span style="color: #0000bb">$food</span><span style="color: #007700">, </span><span style="color: #0000bb">COUNT_RECURSIVE</span><span style="color: #007700">);&nbsp;&nbsp;</span></span><span style="font-family: Courier New"><span style="color: #ff8000">// output 8 <br /><br />// normal count <br /></span><span style="color: #007700">echo </span><span style="color: #0000bb">count</span><span style="color: #007700">(</span><span style="color: #0000bb">$food</span><span style="color: #007700">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff8000">// output 2</span></span></span></p><p><span style="color: #000000"><span style="font-family: Courier New"><span style="color: #ff8000">ps：<span class="simpara"><span style="color: #000000"> 可选的 <em><span style="font-family: 新宋体">mode</span></em> 参数自 PHP 4.2.0 起可用。<br /><br /></span></span></span></span></span></p></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/312.htm</link>
<title><![CDATA[Apache,rewrite规则和四个实例讲解【转】]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[web技术]]></category>
<pubDate>Thu, 26 May 2011 09:53:30 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/312.htm</guid> 
<description>
<![CDATA[ 
	<p>Apache rewrite规则<br />1、Rewrite规则简介:<br />Rewirte主要的功能就是实现URL的跳转，它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模块，必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块，别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。<br />基于服务器级的(httpd.conf)有两种方法，一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明，需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。<br />基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。</p><p>2、举例说明：<br />下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.colorme.com和203.81.23.202都跳转到主机前缀为http://www.1lou.net，避免当用户在地址栏写入http://1lou.net时不能以会员方式登录网站。<br />NameVirtualHost 192.168.100.8:80<br />&lt;VirtualHost 192.168.100.8:80&gt;<br />ServerAdmin webmaster@1lou.net<br />DocumentRoot &quot;/web/webapp&quot;<br />ServerName www.1lou.net<br />ServerName 1lou.net<br />RewriteEngine on&nbsp; #打开rewirte功能<br />RewriteCond %&#123;HTTP_HOST&#125; !^www.1lou.net [NC] #声明Client请求的主机中前缀不是www.1lou.net,[NC]的意思是忽略大小写<br />RewriteCond %&#123;HTTP_HOST&#125; !^203.81.23.202 [NC]&nbsp; #声明Client请求的主机中前缀不是203.81.23.202,[NC]的意思是忽略大小写<br />RewriteCond %&#123;HTTP_HOST&#125; !^$&nbsp; #声明Client请求的主机中前缀不为空,[NC]的意思是忽略大小写<br />RewriteRule ^/(.*) http://www.1lou.net/ [L] #含义是如果Client请求的主机中的前缀符合上述条件，则直接进行跳转到http://www.1lou.net/, [L]意味着立即停止重写操作，并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符，()括号的功能是把所有的字符做一个标记，以便于后面的应用.就是引用前面里的(.*)字符。<br />&lt;/VirtualHost&gt;</p><br /><p>例二.将输入 folio.1lou.net 的域名时跳转到profile.1lou.net<br />listen 8080<br />NameVirtualHost 10.122.89.106:8080&nbsp;<br />&lt;VirtualHost 10.122.89.106:8080&gt;<br />ServerAdmin webmaster@1lou.net<br />DocumentRoot &quot;/usr/local/www/apache22/data1/&quot;<br />ServerName profile.1lou.net<br />RewriteEngine on&nbsp;&nbsp;<br />RewriteCond %&#123;HTTP_HOST&#125; ^folio.1lou.net [NC]<br />RewriteRule ^/(.*) http://profile.1lou.net/ [L]<br />&lt;/VirtualHost&gt;</p><p>例三.赛卡软件近期更换了域名，新域名为www.sicasoft.com, 更加简短好记。这时需要将原来的域名ss.kiya.cn, 以及论坛所在地址bbs.1lou.net/定向到新的域名，以便用户可以找到，并且使原来的论坛 URL 继续有效而不出现 404 未找到，比如原来的http://bbs.1lou.net/tread-60.html, 让它在新的域名下继续有效，点击后转发到http://bbs.sicasoft.com/tread-60.html，而其他网页，如原先的http://ss.kiya.cn/purchase不会到二级域名bbs.sicasoft.com/purchase上，而是到www.sicasoft.com/purchase<br />按照这样的要求重定向规则应该这样写：</p><p>RewriteEngine On<br />RewriteCond %&#123;REQUEST_URI&#125; ^/bbs/<br />RewriteRule ^bbs/(.*) http://bbs.sicasoft.com/$1 [R=permanent,L]<br />RewriteCond %&#123;REQUEST_URI&#125; !^/bbs/<br />RewriteRule ^(.*) http://www.sicasoft.com/$1 [R=permanent,L]</p><p><br />3.Apache mod_rewrite规则重写的标志一览<br />1) R[=code](force redirect) 强制外部重定向<br />强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定，将用缺省的302 HTTP状态码。<br />2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。<br />3) G(force URL to be gone) 强制URL为GONE，返回410HTTP状态码。<br />4) P(force proxy) 强制使用代理转发。<br />5) L(last rule) 表明当前规则是最后一条规则，停止分析以后规则的重写。<br />6) N(next round) 重新从第一条规则开始运行重写过程。<br />7) C(chained with next rule) 与下一条规则关联<br />如果规则匹配则正常处理，该标志无效，如果不匹配，那么下面所有关联的规则都跳过。<br />8) T=MIME-type(force MIME type) 强制MIME类型<br />9) NS (used only if no internal sub-request) 只用于不是内部子请求<br />10) NC(no case) 不区分大小写<br />11) QSA(query string append) 追加请求字符串<br />12) NE(no URI escaping of output) 不在输出转义特殊字符<br />例如：RewriteRule /foo/(.*) /bar?arg=P1&#92;%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed<br />13) PT(pass through to next handler) 传递给下一个处理<br />例如：<br />RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理<br />Alias /def /ghi<br />14) S=num(skip next rule(s)) 跳过num条规则<br />15) E=VAR:VAL(set environment variable) 设置环境变量</p><p><br />4.<br />Apache rewrite例子集合<br />在 httpd 中将一个域名转发到另一个域名<br />虚拟主机世界近期更换了域名，新域名为 www.wbhw.com, 更加简短好记。这时需要将原来的域名 webhosting-world.com, 以及论坛所在地址 webhosting-world.com/forums/ 定向到新的域名，以便用户可以找到，并且使原来的论坛 URL 继续有效而不出现 404 未找到，比如原来的 http://www. webhosting-world.com/forums/-f60.html, 让它在新的域名下继续有效，点击后转发到 http://bbs.wbhw.com/-f60.html, 这就需要用 apache 的 Mod_rewrite 功能来实现。</p><p>在&lt; virtualhost&gt; 中添加下面的重定向规则：</p><p>RewriteEngine On<br /># Redirect webhosting-world.com/forums to bbs.wbhw.com<br />RewriteCond %&#123;REQUEST_URI&#125; ^/forums/<br />RewriteRule /forums/(.*) http://bbs.wbhw.com/$1 [R=permanent,L]</p><p># Redirect webhosting-world.com to wbhw.com<br />RewriteCond %&#123;REQUEST_URI&#125; !^/forums/<br />RewriteRule /(.*) http://www.wbhw.com/$1 [R=permanent,L]</p><p>添加了上面的规则以后， 里的全部内容如下：<br />&lt; virtualhost *:80&gt;<br />ServerAlias webhosting-world.com<br />ServerAdmin admin@webhosting-world.com<br />DocumentRoot /path/to/webhosting-world/root<br />ServerName www.webhosting-world.com</p><p>RewriteEngine On<br /># Redirect webhosting-world.com/forums to bbs.wbhw.com<br />RewriteCond %&#123;REQUEST_URI&#125; ^/forums/<br />RewriteRule /forums/(.*) http://bbs.wbhw.com/$1 [R=permanent,L]</p><p># Redirect webhosting-world.com to wbhw.com<br />RewriteCond %&#123;REQUEST_URI&#125; !^/forums/<br />RewriteRule /(.*) http://www.wbhw.com/$1 [R=permanent,L]<br />&lt; /virtualhost&gt;</p><br /><p>URL重定向例子一:<br />1.http://www.zzz.com/xxx.php-&gt; http://www.zzz.com/xxx/<br />2.http://yyy.zzz.com-&gt; http://www.zzz.com/user.php?username=yyy 的功能</p><p>RewriteEngine On<br />RewriteCond %&#123;HTTP_HOST&#125; ^www.zzz.com<br />RewriteCond %&#123;REQUEST_URI&#125; !^user&#92;.php$<br />RewriteCond %&#123;REQUEST_URI&#125; &#92;.php$<br />RewriteRule (.*)&#92;.php$ http://www.zzz.com/$1/ [R]</p><p>RewriteCond %&#123;HTTP_HOST&#125; !^www.zzz.com<br />RewriteRule ^(.+) %&#123;HTTP_HOST&#125; [C]<br />RewriteRule ^([^&#92;.]+)&#92;.zzz&#92;.com http://www.zzz.com/user.php?username=$1</p><p>例子二：<br />/type.php?typeid=* --&gt; /type*.html<br />/type.php?typeid=*&amp;page=* --&gt; /type*page*.html</p><p>RewriteRule ^/type([0-9]+).html$ /type.php?typeid=$1 [PT]<br />RewriteRule ^/type([0-9]+)page([0-9]+).html$ /type.php?typeid=$1&amp;page=$2 [PT]</p><br /><p>5.使用Apache的URL Rewrite配置多用户虚拟服务器<br />要实现这个功能，首先要在DNS服务器上打开域名的泛域名解析（自己做或者找域名服务商做）。比如，我就把 *.1lou.net和 *.semcase.cn全部解析到了我的这台Linux Server上。</p><p>然后，看一下我的Apache中关于*.1lou.net的虚拟主机的设定。</p><p>#*.com,*.osall.net<br />&lt;VirtualHost *:80&gt;<br />ServerAdmin webmaster@1lou.net<br />DocumentRoot /home/www/www.1lou.net<br />ServerName dns.1lou.net<br />ServerAlias dns.1lou.net 1lou.net semcase.net *.1lou.net *.semcase.net<br />CustomLog /var/log/httpd/osa/access_log.log&quot; common<br />ErrorLog /var/log/httpd/osa/error_log.log&quot;<br />&lt;Directory /home/www/www.1lou.net&gt;<br />AllowOverride None<br />Order deny,allow<br />#AddDefaultCharset GB2312<br />&lt;/Directory&gt;<br />&lt;IfModule mod_rewrite.c&gt;<br />RewriteEngine on<br />RewriteCond %&#123;HTTP_HOST&#125; ^[^.]+&#92;.osall&#92;.(com&#124;net)$<br />RewriteRule ^(.+) %&#123;HTTP_HOST&#125;$1 [C]<br />RewriteRule ^([^.]+)&#92;.osall&#92;.(com&#124;net)(.*)$ /home/www/www.1lou.net/sylvan$3?un=$1&amp;%&#123;QUERY_STRING&#125; [L] &lt;/IfModule&gt;<br />&lt;/VirtualHost&gt;</p><p><br />在这段设定中，我把*.semcase.net和*.1lou.net 的Document Root都设定到了 /home/www/www.1lou.net<br />但是，继续看下去，看到&lt;IfModule mod_rewrite.c&gt;...&lt;/IfModule&gt;配置了吗？在这里我就配置了URL Rewrite规则。</p><p><br />RewriteEngine on #打开URL Rewrite功能<br />RewriteCond %&#123;HTTP_HOST&#125; ^[^.]+.osall.(com&#124;net)$ #匹配条件，如果用户输入的URL中主机名是类似 xxxx.1lou.net 或者 xxxx.semcase.cn 就执行下面一句<br />RewriteRule ^(.+) %&#123;HTTP_HOST&#125;$1 [C] #把用户输入完整的地址（GET方式的参数除外）作为参数传给下一个规则，[C]是Chain串联下一个规则的意思<br />RewriteRule ^([^.]+).osall.(com&#124;net)(.*)$ /home/www/dev.1lou.net/sylvan$3?un=$1&amp;%&#123;QUERY_STRING&#125; [L] # 最关键的是这一句，使用证则表达式解析用户输入的URL地址，把主机名中的用户名信息作为名为un的参数传给 /home/www/dev.1lou.net目录下的脚本，并在后面跟上用户输入的GET方式的传入参数。并指明这是最后一条规则（[L]规则）。注意，在这一句中指明的重写后的地址用的是服务器上的绝对路径，这是内部跳转。如果使用http://xxxx这样的URL格式，则被称为外部跳转。使用外部跳转的话，浏览着的浏览器中的URL地址会改变成新的地址，而使用内部跳转则浏览器中的地址不发生改变，看上去更像实际的二级域名虚拟服务器。</p><p>这样设置后，重起Apache服务器，测试一下，就大功告成了！<br />&nbsp;</p><p>&nbsp;求Rewrite 防盗链正则<br />不允许www.im286.com www.chinaz.com 这两个网站盗链 , 其它的网站都可以盗链的规则怎么写.</p><p>论坛中的答案是：<br />RewriteEngine On<br />RewriteCond %&#123;HTTP_REFERER&#125; chinaz.com [NC]<br />RewriteCond %&#123;HTTP_REFERER&#125; im286.com [NC]<br />RewriteRule .*&#92;.(jpg&#124;jpeg&#124;gif&#124;png&#124;rar&#124;zip&#124;txt&#124;ace&#124;torrent&#124;gz&#124;swf)$ http://www.xxx.com/fuck.png [R,NC,L]</p><br /><br /><p>一、关于是否需要使用完全转义，比如在 RewriteCond %&#123;HTTP_REFERER&#125; chinaz.com [NC] 中把 chinaz.com 改成 chinaz&#92;.com<br />答案是，两者都是可以的。</p><p>二、今天在做 YOURcaddy.com （就是我去年做的PlanetCoachella的变形）的时候，在 GoDaddy 主机上无法正常转向，后来找到了问题：<br />在HostMonster以及我自己的机器上，是用<br />RewriteRule ^business/([^&#92;.]+)$ biz/detail.php?name=$1 [L]<br />达到改写的。而在Godaddy主机上，是这样：<br />RewriteRule ^business/([^&#92;.]+)$ /biz/detail.php?name=$1 [L]<br />目标文件前多了一个/<br />现在想想，可能是因为没有指定RewriteBase，至于到底是不是我改日再验证一下。</p><p>三、添加两个关于判断 USER AGENT 例子和自动添加.php扩展名及自动换.html到.php扩展名的例子：<br />1</p><p>RewriteEngine on<br />RewriteCond %&#123;HTTP_USER_AGENT&#125; ^MSIE [NC,OR]<br />RewriteCond %&#123;HTTP_USER_AGENT&#125; ^Opera [NC]<br />RewriteRule ^.* &ndash; [F,L] 这里&rdquo;-&rdquo;表示没有替换，浏览器为IE和Opera的访客将被禁止访问。</p><p>2</p><p>RewriteEngine On<br />RewriteBase /test<br />RewriteCond %&#123;REQUEST_FILENAME&#125;.php -f<br />RewriteRule ([^/]+)$ /test/$1.php<br />#for example: /test/admin =&gt; /test/admin.php<br />RewriteRule ([^/]+)&#92;.html$ /test/$1.php [L]<br />#for example: /test/admin.html =&gt; /test/admin.php</p><p>限制目录只能显示图片<br />&lt; IfModule mod_rewrite.c&gt;<br />RewriteEngine on<br />RewriteCond %&#123;REQUEST_FILENAME&#125; !^.*&#92;.(gif&#124;jpg&#124;jpeg&#124;png&#124;swf)$<br />RewriteRule .*$ &ndash; [F,L]<br />&lt; /IfModule&gt;</p><br /><p>补充，关于特定文件扩展名的重写。</p><p>重写有某些扩展名的文件：<br />RewriteRule (.*.css$&#124;.*.js$) gzip.php?$1 [L]<br />如果要排除一些扩展名：<br />RewriteRule !&#92;.(js&#124;ico&#124;gif&#124;jpg&#124;JPG&#124;png&#124;PNG&#124;css&#124;pdf&#124;swf)$ index.php</p>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/311.htm</link>
<title><![CDATA[常用mimetype列表(文件头)php ]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Sun, 15 May 2011 08:22:11 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/311.htm</guid> 
<description>
<![CDATA[ 
	<p>$mimetypelist[&quot;csm&quot;] = &quot;application/cu-seeme&quot;;<br />$mimetypelist[&quot;cu&quot;] = &quot;application/cu-seeme&quot;;<br />$mimetypelist[&quot;tsp&quot;] = &quot;application/dsptype&quot;;<br />$mimetypelist[&quot;xls&quot;] = &quot;application/excel&quot;;<br />$mimetypelist[&quot;spl&quot;] = &quot;application/futuresplash&quot;;<br />$mimetypelist[&quot;hqx&quot;] = &quot;application/mac-binhex40&quot;;<br />$mimetypelist[&quot;doc&quot;] = &quot;application/msword&quot;;<br />$mimetypelist[&quot;dot&quot;] = &quot;application/msword&quot;;<br />$mimetypelist[&quot;bin&quot;] = &quot;application/octet-stream&quot;;<br />$mimetypelist[&quot;oda&quot;] = &quot;application/oda&quot;;<br />$mimetypelist[&quot;pdf&quot;] = &quot;application/pdf&quot;;<br />$mimetypelist[&quot;pgp&quot;] = &quot;application/pgp-signature&quot;;<br />$mimetypelist[&quot;ps&quot;] = &quot;application/postscript&quot;;<br />$mimetypelist[&quot;ai&quot;] = &quot;application/postscript&quot;;<br />$mimetypelist[&quot;eps&quot;] = &quot;application/postscript&quot;;<br />$mimetypelist[&quot;ppt&quot;] = &quot;application/powerpoint&quot;;<br />$mimetypelist[&quot;rtf&quot;] = &quot;application/rtf&quot;;<br />$mimetypelist[&quot;wp5&quot;] = &quot;application/wordperfect5.1&quot;;<br />$mimetypelist[&quot;zip&quot;] = &quot;application/zip&quot;;<br />$mimetypelist[&quot;wk&quot;] = &quot;application/x-123&quot;;<br />$mimetypelist[&quot;bcpio&quot;] = &quot;application/x-bcpio&quot;;<br />$mimetypelist[&quot;pgn&quot;] = &quot;application/x-chess-pgn&quot;;<br />$mimetypelist[&quot;cpio&quot;] = &quot;application/x-cpio&quot;;<br />$mimetypelist[&quot;deb&quot;] = &quot;application/x-debian-package&quot;;<br />$mimetypelist[&quot;dcr&quot;] = &quot;application/x-director&quot;;<br />$mimetypelist[&quot;dir&quot;] = &quot;application/x-director&quot;;<br />$mimetypelist[&quot;dxr&quot;] = &quot;application/x-director&quot;;<br />$mimetypelist[&quot;dvi&quot;] = &quot;application/x-dvi&quot;;<br />$mimetypelist[&quot;pfa&quot;] = &quot;application/x-font&quot;;<br />$mimetypelist[&quot;pfb&quot;] = &quot;application/x-font&quot;;<br />$mimetypelist[&quot;gsf&quot;] = &quot;application/x-font&quot;;<br />$mimetypelist[&quot;pcf&quot;] = &quot;application/x-font&quot;;<br />$mimetypelist[&quot;pcf.Z&quot;] = &quot;application/x-font&quot;;<br />$mimetypelist[&quot;gtar&quot;] = &quot;application/x-gtar&quot;;<br />$mimetypelist[&quot;tgz&quot;] = &quot;application/x-gtar&quot;;<br />$mimetypelist[&quot;hdf&quot;] = &quot;application/x-hdf&quot;;<br />$mimetypelist[&quot;phtml&quot;] = &quot;application/x-httpd-php&quot;;<br />$mimetypelist[&quot;pht&quot;] = &quot;application/x-httpd-php&quot;;<br />$mimetypelist[&quot;php&quot;] = &quot;application/x-httpd-php&quot;;<br />$mimetypelist[&quot;php3&quot;] = &quot;application/x-httpd-php3&quot;;<br />$mimetypelist[&quot;phps&quot;] = &quot;application/x-httpd-php3-source&quot;;<br />$mimetypelist[&quot;php3p&quot;] = &quot;application/x-httpd-php3-preprocessed&quot;;<br />$mimetypelist[&quot;class&quot;] = &quot;application/x-java&quot;;<br />$mimetypelist[&quot;latex&quot;] = &quot;application/x-latex&quot;;<br />$mimetypelist[&quot;frm&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;maker&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;frame&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;fm&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;fb&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;book&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;fbdoc&quot;] = &quot;application/x-maker&quot;;<br />$mimetypelist[&quot;mif&quot;] = &quot;application/x-mif&quot;;<br />$mimetypelist[&quot;com&quot;] = &quot;application/x-msdos-program&quot;;<br />$mimetypelist[&quot;exe&quot;] = &quot;application/x-msdos-program&quot;;<br />$mimetypelist[&quot;bat&quot;] = &quot;application/x-msdos-program&quot;;<br />$mimetypelist[&quot;dll&quot;] = &quot;application/x-msdos-program&quot;;<br />$mimetypelist[&quot;nc&quot;] = &quot;application/x-netcdf&quot;;<br />$mimetypelist[&quot;cdf&quot;] = &quot;application/x-netcdf&quot;;<br />$mimetypelist[&quot;pac&quot;] = &quot;application/x-ns-proxy-autoconfig&quot;;<br />$mimetypelist[&quot;o&quot;] = &quot;application/x-object&quot;;<br />$mimetypelist[&quot;pl&quot;] = &quot;application/x-perl&quot;;<br />$mimetypelist[&quot;pm&quot;] = &quot;application/x-perl&quot;;<br />$mimetypelist[&quot;shar&quot;] = &quot;application/x-shar&quot;;<br />$mimetypelist[&quot;swf&quot;] = &quot;application/x-shockwave-flash&quot;;<br />$mimetypelist[&quot;swfl&quot;] = &quot;application/x-shockwave-flash&quot;;<br />$mimetypelist[&quot;sit&quot;] = &quot;application/x-stuffit&quot;;<br />$mimetypelist[&quot;sv4cpio&quot;] = &quot;application/x-sv4cpio&quot;;<br />$mimetypelist[&quot;sv4crc&quot;] = &quot;application/x-sv4crc&quot;;<br />$mimetypelist[&quot;tar&quot;] = &quot;application/x-tar&quot;;<br />$mimetypelist[&quot;gf&quot;] = &quot;application/x-tex-gf&quot;;<br />$mimetypelist[&quot;pk&quot;] = &quot;application/x-tex-pk&quot;;<br />$mimetypelist[&quot;PK&quot;] = &quot;application/x-tex-pk&quot;;<br />$mimetypelist[&quot;texinfo&quot;] = &quot;application/x-texinfo&quot;;<br />$mimetypelist[&quot;texi&quot;] = &quot;application/x-texinfo&quot;;<br />$mimetypelist[&quot;~&quot;] = &quot;application/x-trash&quot;;<br />$mimetypelist[&quot;%&quot;] = &quot;application/x-trash&quot;;<br />$mimetypelist[&quot;bak&quot;] = &quot;application/x-trash&quot;;<br />$mimetypelist[&quot;old&quot;] = &quot;application/x-trash&quot;;<br />$mimetypelist[&quot;sik&quot;] = &quot;application/x-trash&quot;;<br />$mimetypelist[&quot;t&quot;] = &quot;application/x-troff&quot;;<br />$mimetypelist[&quot;tr&quot;] = &quot;application/x-troff&quot;;<br />$mimetypelist[&quot;roff&quot;] = &quot;application/x-troff&quot;;<br />$mimetypelist[&quot;man&quot;] = &quot;application/x-troff-man&quot;;<br />$mimetypelist[&quot;me&quot;] = &quot;application/x-troff-me&quot;;<br />$mimetypelist[&quot;ms&quot;] = &quot;application/x-troff-ms&quot;;<br />$mimetypelist[&quot;ustar&quot;] = &quot;application/x-ustar&quot;;<br />$mimetypelist[&quot;src&quot;] = &quot;application/x-wais-source&quot;;<br />$mimetypelist[&quot;wz&quot;] = &quot;application/x-wingz&quot;;<br />$mimetypelist[&quot;au&quot;] = &quot;audio/basic&quot;;<br />$mimetypelist[&quot;snd&quot;] = &quot;audio/basic&quot;;<br />$mimetypelist[&quot;mid&quot;] = &quot;audio/midi&quot;;<br />$mimetypelist[&quot;midi&quot;] = &quot;audio/midi&quot;;<br />$mimetypelist[&quot;mpga&quot;] = &quot;audio/mpeg&quot;;<br />$mimetypelist[&quot;mpega&quot;] = &quot;audio/mpeg&quot;;<br />$mimetypelist[&quot;mp2&quot;] = &quot;audio/mpeg&quot;;<br />$mimetypelist[&quot;mp3&quot;] = &quot;audio/mpeg&quot;;<br />$mimetypelist[&quot;m3u&quot;] = &quot;audio/mpegurl&quot;;<br />$mimetypelist[&quot;aif&quot;] = &quot;audio/x-aiff&quot;;<br />$mimetypelist[&quot;aiff&quot;] = &quot;audio/x-aiff&quot;;<br />$mimetypelist[&quot;aifc&quot;] = &quot;audio/x-aiff&quot;;<br />$mimetypelist[&quot;gsm&quot;] = &quot;audio/x-gsm&quot;;<br />$mimetypelist[&quot;ra&quot;] = &quot;audio/x-pn-realaudio&quot;;<br />$mimetypelist[&quot;rm&quot;] = &quot;audio/x-pn-realaudio&quot;;<br />$mimetypelist[&quot;ram&quot;] = &quot;audio/x-pn-realaudio&quot;;<br />$mimetypelist[&quot;rpm&quot;] = &quot;audio/x-pn-realaudio-plugin&quot;;<br />$mimetypelist[&quot;wav&quot;] = &quot;audio/x-wav&quot;;<br />$mimetypelist[&quot;gif&quot;] = &quot;image/gif&quot;;<br />$mimetypelist[&quot;ief&quot;] = &quot;image/ief&quot;;<br />$mimetypelist[&quot;jpeg&quot;] = &quot;image/jpeg&quot;;<br />$mimetypelist[&quot;jpg&quot;] = &quot;image/jpeg&quot;;<br />$mimetypelist[&quot;jpe&quot;] = &quot;image/jpeg&quot;;<br />$mimetypelist[&quot;png&quot;] = &quot;image/png&quot;;<br />$mimetypelist[&quot;tiff&quot;] = &quot;image/tiff&quot;;<br />$mimetypelist[&quot;tif&quot;] = &quot;image/tiff&quot;;<br />$mimetypelist[&quot;ras&quot;] = &quot;image/x-cmu-raster&quot;;<br />$mimetypelist[&quot;bmp&quot;] = &quot;image/x-ms-bmp&quot;;<br />$mimetypelist[&quot;pnm&quot;] = &quot;image/x-portable-anymap&quot;;<br />$mimetypelist[&quot;pbm&quot;] = &quot;image/x-portable-bitmap&quot;;<br />$mimetypelist[&quot;pgm&quot;] = &quot;image/x-portable-graymap&quot;;<br />$mimetypelist[&quot;ppm&quot;] = &quot;image/x-portable-pixmap&quot;;<br />$mimetypelist[&quot;rgb&quot;] = &quot;image/x-rgb&quot;;<br />$mimetypelist[&quot;xbm&quot;] = &quot;image/x-xbitmap&quot;;<br />$mimetypelist[&quot;xpm&quot;] = &quot;image/x-xpixmap&quot;;<br />$mimetypelist[&quot;xwd&quot;] = &quot;image/x-xwindowdump&quot;;<br />$mimetypelist[&quot;csv&quot;] = &quot;text/comma-separated-values&quot;;<br />$mimetypelist[&quot;html&quot;] = &quot;text/html&quot;;<br />$mimetypelist[&quot;htm&quot;] = &quot;text/html&quot;;<br />$mimetypelist[&quot;mml&quot;] = &quot;text/mathml&quot;;<br />$mimetypelist[&quot;txt&quot;] = &quot;text/plain&quot;;<br />$mimetypelist[&quot;rtx&quot;] = &quot;text/richtext&quot;;<br />$mimetypelist[&quot;tsv&quot;] = &quot;text/tab-separated-values&quot;;<br />$mimetypelist[&quot;h++&quot;] = &quot;text/x-c++hdr&quot;;<br />$mimetypelist[&quot;hpp&quot;] = &quot;text/x-c++hdr&quot;;<br />$mimetypelist[&quot;hxx&quot;] = &quot;text/x-c++hdr&quot;;<br />$mimetypelist[&quot;hh&quot;] = &quot;text/x-c++hdr&quot;;<br />$mimetypelist[&quot;c++&quot;] = &quot;text/x-c++src&quot;;<br />$mimetypelist[&quot;cpp&quot;] = &quot;text/x-c++src&quot;;<br />$mimetypelist[&quot;cxx&quot;] = &quot;text/x-c++src&quot;;<br />$mimetypelist[&quot;cc&quot;] = &quot;text/x-c++src&quot;;<br />$mimetypelist[&quot;h&quot;] = &quot;text/x-chdr&quot;;<br />$mimetypelist[&quot;csh&quot;] = &quot;text/x-csh&quot;;<br />$mimetypelist[&quot;c&quot;] = &quot;text/x-csrc&quot;;<br />$mimetypelist[&quot;java&quot;] = &quot;text/x-java&quot;;<br />$mimetypelist[&quot;moc&quot;] = &quot;text/x-moc&quot;;<br />$mimetypelist[&quot;p&quot;] = &quot;text/x-pascal&quot;;<br />$mimetypelist[&quot;pas&quot;] = &quot;text/x-pascal&quot;;<br />$mimetypelist[&quot;etx&quot;] = &quot;text/x-setext&quot;;<br />$mimetypelist[&quot;sh&quot;] = &quot;text/x-sh&quot;;<br />$mimetypelist[&quot;tcl&quot;] = &quot;text/x-tcl&quot;;<br />$mimetypelist[&quot;tk&quot;] = &quot;text/x-tcl&quot;;<br />$mimetypelist[&quot;tex&quot;] = &quot;text/x-tex&quot;;<br />$mimetypelist[&quot;ltx&quot;] = &quot;text/x-tex&quot;;<br />$mimetypelist[&quot;sty&quot;] = &quot;text/x-tex&quot;;<br />$mimetypelist[&quot;cls&quot;] = &quot;text/x-tex&quot;;<br />$mimetypelist[&quot;vcs&quot;] = &quot;text/x-vcalendar&quot;;<br />$mimetypelist[&quot;vcf&quot;] = &quot;text/x-vcard&quot;;<br />$mimetypelist[&quot;dl&quot;] = &quot;video/dl&quot;;<br />$mimetypelist[&quot;fli&quot;] = &quot;video/fli&quot;;<br />$mimetypelist[&quot;gl&quot;] = &quot;video/gl&quot;;<br />$mimetypelist[&quot;mpeg&quot;] = &quot;video/mpeg&quot;;<br />$mimetypelist[&quot;mpg&quot;] = &quot;video/mpeg&quot;;<br />$mimetypelist[&quot;mpe&quot;] = &quot;video/mpeg&quot;;<br />$mimetypelist[&quot;qt&quot;] = &quot;video/quicktime&quot;;<br />$mimetypelist[&quot;mov&quot;] = &quot;video/quicktime&quot;;<br />$mimetypelist[&quot;asf&quot;] = &quot;video/x-ms-asf&quot;;<br />$mimetypelist[&quot;asx&quot;] = &quot;video/x-ms-asf&quot;;<br />$mimetypelist[&quot;avi&quot;] = &quot;video/x-msvideo&quot;;<br />$mimetypelist[&quot;movie&quot;] = &quot;video/x-sgi-movie&quot;;<br />$mimetypelist[&quot;vrm&quot;] = &quot;x-world/x-vrml&quot;;<br />$mimetypelist[&quot;vrml&quot;] = &quot;x-world/x-vrml&quot;;<br />$mimetypelist[&quot;wrl&quot;] = &quot;x-world/x-vrml&quot;;</p>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/310.htm</link>
<title><![CDATA[PHP匹配反斜杠（）]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Thu, 12 May 2011 03:28:31 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/310.htm</guid> 
<description>
<![CDATA[ 
	<div id="blog_text" class="cnt"><div class="cnt"><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果想匹配如 .,&#123;,$,等特殊字符（在正则表达式中有特殊意义的字符），就必须在该字符前加反斜杠(&#92;)，（C中管它&#92;叫&lsquo;转义符&rsquo;）如果想表示这个反斜杠(&#92;)，就在他前面再加个反斜杠，即改成（&#92;&#92;）。<br />　　必须注意的是在PHP中要尽量把正则表达式放在单引号(')中。如果把正则表达式放在双引号里则会引起一些不必要的麻烦。在PHP的正则表达式中也要使用反斜杠(&#92;)来&lsquo;掩盖&rsquo;一些特殊的字符--像反斜杠(&#92;)自身。在表达式中如想匹配一个反斜杠(&#92;)，也必须使用两个反斜杠(&#92;)来表示它是原义的反斜杠(&#92;)，而不是转义符。<span style="color: #ff0000">在测试中发现，用单引号也需要用四个反斜杠来表示一个。</span><br />　　类似的原因，把反斜杠(&#92;)放在双引号中时也要使用两个反斜杠(&#92;)来转义。令人困惑的是，根据以上规则，在PHP中的正则表达式里要表示一个反斜杠(&#92;)就要四个反斜杠(&#92;)。PHP解析器会将四个反斜杠(&#92;)解析成两个。之后正则解析又将之解析成一个。<br />　　美圆符$在PHP字串和正则表达式中也是个有特殊意义的字符。如需匹配$的原义字符，就必须写成&quot;&#92;&#92;&#92;$&quot;.因为它在双引号里，PHP会将之解析为&#92;$，然后正则解析就会将它匹配为美圆符(而不是表示&lsquo;字符串的结束位置&rsquo;)。</p><p></p><p>另外需要注意的是，PHP中的正则表达式必须以'/'开始和结束，如：&quot;/abc/&quot;，而不能写作&quot;abc&quot;。</p></div></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/309.htm</link>
<title><![CDATA[PHP正则表达式]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Thu, 12 May 2011 03:07:49 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/309.htm</guid> 
<description>
<![CDATA[ 
	<div id="cnblogs_post_body"><p><strong>1、正则表达式的介绍和作用<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />什么是正则表达式？ <br />在编写处理字符串的程序或网页时，经常会有查找符合某些复杂规则的字符串 <br />的需要。正则表达式就是用于描述这些规则的语法。 <br />&nbsp;<br />&nbsp; <br />例：在判断用户邮件地址格式、手机号码格式或者采集别人网页内容时 <br />&nbsp; <br />主要的作用是：</strong><strong style="color: red">分割、匹配、查找、替换</strong><strong><br />&nbsp; <br /></strong><strong style="color: red">注：正则表达式对于一个程序员来讲是至关重要的一个知识点，所以学好正则 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是每一个程序员必须具备的。不仅可以帮助我们完成一些通过函数无法实现 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的工作，还可以帮助我们减轻很多工作量。</strong><strong><br />&nbsp; <br />2、PHP中两个常用的正则函数<br />&nbsp; <br /></strong><strong style="color: red">preg_match 正则函数，以perl语言为基础 </strong><strong><br />preg_match ( mode, string subject , array matches ) <br />&nbsp; <br /></strong><strong style="color: red">ereg 正则函数，以POSIX基础 （Unix 、 Script） </strong><strong><br />ereg ( mode, string subject , array regs ) <br />&nbsp; <br />3、正则表达式中包括的元素<br />&nbsp; <br />(1)、</strong><strong style="color: red">原子</strong><strong>（普通字符：a-z A-Z 0-9 、原子表、 转义字符） <br />(2)、</strong><strong style="color: red">元字符</strong><strong> （有特殊功能的字符） <br />(3)、</strong><strong style="color: red">模式修正符</strong><strong> （系统内置部分字符 i 、m、S、U&hellip;） <br />&nbsp; <br />4、正则表达式中的&ldquo;原子&rdquo; <br />&nbsp; <br />①a-z A-Z _ 0-9&nbsp; </strong><strong style="color: #0000ff">//最常见的字符 </strong><strong><br />②(abc) (skd)&nbsp; </strong><strong style="color: #0000ff">//用圆括号包含起来的单元符合 </strong><strong><br />③[abcs] [^abd]&nbsp; </strong><strong style="color: #0000ff">//用方括号包含的原子表，原子表中的^代表排除或相反内容 </strong><strong><br />④转义字符 <br />&nbsp; &#92;d&nbsp; 包含所有数字</strong><strong style="color: red">[0-9] </strong><strong><br />&nbsp; &#92;D&nbsp; 除所有数字外</strong><strong style="color: red">[^0-9] </strong><strong><br />&nbsp; &#92;w&nbsp; 包含所有英文字符</strong><strong style="color: red">[a-zA-Z_0-9] </strong><strong><br />&nbsp; &#92;W&nbsp; 除所有英文字符外</strong><strong style="color: red">[^a-zA-Z_0-9]</strong><strong><br />&nbsp; &#92;s&nbsp;&nbsp; 包含空白区域如回车、换行、分页等</strong><strong style="color: red"> [&#92;f&#92;n&#92;r] </strong><strong><br />&hellip;&hellip; <br />5、正则表达式元字符 <br />&nbsp; <br />*&nbsp; 匹配前一个内容的0次1次或多次 <br /></strong><strong style="color: red">.&nbsp; 匹配内容的0次1次或多次，但不包含回车换行 </strong><strong><br />+ 匹配前一个内容的1次或多次 <br />？匹配前一个内容的0次或1次 <br />&#124;&nbsp; 选择匹配类似PHP中的&#124; （因为这个运算符合是弱类型导致前面最为整体匹配） <br />^&nbsp; 匹配字符串首部内容 <br />$&nbsp; 匹配字符串尾部内容 <br />&#92;b 匹配单词边界，边界可以是空格或者特殊符合 <br />&#92;B 匹配除带单词边界意外内容 <br />&#123;m&#125; 匹配前一个内容的重复次数为M次 <br />&#123;m,&#125; 匹配前一个内容的重复次数大于等于M次 <br />&#123;m,n&#125; 匹配前一个内容的重复次数M次到N次 <br />( ) 合并整体匹配，并放入内存，可使用&#92;1 &#92;2&hellip;依次获取<br />&nbsp;<br />6、模式修正符&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></strong><strong style="color: red">模式修正符是为正则表达式增强和补充的一个功能，使用在正则之外</strong><strong><br />&nbsp; <br />常用修正符<br />&nbsp; <br />i 正则内容在匹配时候不区分大小写（默认是区分的） <br />m 在匹配首内容或者尾内容时候采用多行识别匹配 <br />S 将转义回车取消是为单行匹配如. 匹配的时候 <br />x 忽略正则中的空白 <br />A 强制从头开始匹配 <br />D 强制$匹配尾部无任何内容 &#92;n <br />U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束， <br />&nbsp;&nbsp;&nbsp; 常用在采集程序上的正则表达式<br />&nbsp;<br />7、匹配功能 <br />&nbsp;&nbsp; <br />preg_match_all 全部匹配函数<br /></strong><strong style="color: red">preg_match_all </strong><strong>( string pattern, string subject, array matches [, int flags] ) <br />&nbsp; <br />对结果排序使 $matches[0] 为全部模式匹配的数组<br />&nbsp; <br />用途：截取比较详细的内容，采集网页，分析文本<br />8、替换功能 <br />&nbsp;<br />preg_replace 正则替换函数 <br /></strong><strong style="color: red">preg_replace</strong><strong> ( mixed pattern, mixed replacement, mixed subject [, int limit] ) <br />&nbsp; <br />通过正则表达式来替换相关内容，类似之前学过的str_replace字符串替换，但 <br />功能要强于它。 <br />&nbsp; <br /></strong><strong style="color: red">提示</strong><strong>：</strong><strong style="color: #0000ff">1、替换内容可以是一个正则也可以是数组正则&nbsp;</strong><strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong><strong style="color: #0000ff">2、替换内容可以通过修正符e来解决替换执行内容 </strong><strong><br />&nbsp; <br />用途：替换一些比较复杂的内容上，也可以用于内容的转换上 <br />9、分割功能<br />&nbsp; </strong><strong style="color: red">preg_split </strong><strong>( string pattern, string subject [, int limit [, int flags]] ) <br />&nbsp; preg_split 正则切割 <br />&nbsp; <br />通过正则表达式来切割相关内容，类似之前学过的explode切割函数，但explode <br />只能按照一种方式切割有局限性。</strong></p></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/308.htm</link>
<title><![CDATA[php中iconv函数（编码转换）使用方法_php技巧]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Fri, 06 May 2011 06:54:22 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/308.htm</guid> 
<description>
<![CDATA[ 
	<div class="cnt">unix下安装PHP的module，需要重新编译PHP，Windows下安装模板，只需将php.ini里的配置打开相应的dll就可，例如，需要加入gb库的支持，需要如下设置：<br />extension_dir = &quot;C:/ipaddr/php/extensions/&quot;<br />(注意，建议写全地址，并且后面加上/，很多时候是因为这里设置不对，才导致无法加载其它模块的dll的)<br />再打开<br />extension=php_gd2.dll<br />但如果是安装iconv.dll，按上面方法，打开php_iconv.dll后，还是无法开启iconv模块，需要如下配置：<br />a.上iconv的官方下载站点<br /><a href="http://ftp.gnu.org/pub/gnu/libiconv/" target="_blank"><span style="color: #1463c4">http://ftp.gnu.org/pub/gnu/libiconv/</span></a><br />下面Windows版的iconv文件：libiconv-1.9.1.bin.woe32.zip <br />将这文件解压，将bin/下面的charset.dll，iconv.dll，iconv.exe拷贝到c:/windows/ (或其它的系统PATH中)<br />(ipaddr提醒你，这步是必须的，php_iconv.dll也是调用GNU的iconv库的，所以，先要安装GNU的iconv库)<br /><br />b.开启php.ini里面的php_iconv.dll<br /><br />c.重启Apache，再在phpinfo();检测是否开启iconv。<br />最近在做一个程序，需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312， 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿，去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符&quot;&mdash;&quot;到gb2312时会出错 <br />解决方法很简单，就是在需要转成的编码后加 &quot;//IGNORE&quot; 也就是iconv函数第二个参数后.如下： <br />以下为引用的内容： <br />iconv(&quot;UTF-8&quot;,&quot;GB2312//IGNORE&quot;,$data) <br />ignore的意思是忽略转换时的错误，如果没有ignore参数，所有该字符后面的字符串都无法被保存。<br /><br />这个iconv()这个函数,在php5中是内置的.谢谢.<br /><br />列子<br /><p>&lt;?php<br />echo $str= '你好,这里是卖咖啡!';<br />echo '&lt;br /&gt;';</p><p>echo iconv('GB2312', 'UTF-8', $str);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将字符串的编码从GB2312转到UTF-8<br />echo '&lt;br /&gt;';</p><p>echo iconv_substr($str, 1, 1, 'UTF-8');&nbsp;&nbsp; //按字符个数截取而非字节&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />print_r(iconv_get_encoding());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到当前页面编码信息</p><p>echo iconv_strlen($str, 'UTF-8');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到设定编码的字符串长度</p><p></p><p>//也有这样用的</p><p>&nbsp;&nbsp; $content = iconv(&quot;UTF-8&quot;,&quot;gbk//TRANSLIT&quot;,$content); <br />?&gt;</p></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/307.htm</link>
<title><![CDATA[mysql 一个表有100亿条记录，如何优化【转】]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[web技术]]></category>
<pubDate>Tue, 03 May 2011 06:39:04 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/307.htm</guid> 
<description>
<![CDATA[ 
	<span style="line-height: 150%; font-family: 宋体; font-size: 12pt">我们的数据库还在设计阶段。<span> <br /></span>我们预计数据量将会很大，<span> <br /></span>一年的时间里，一张表，就会产生<span>100</span>亿条数据，<span> <br /><br /></span>表结构，如下<span> <br />id,userid,createddate,</span>等等<span> <br /></span>正常情况下，<span>100</span>亿条记录如果都存在一个表里，<span> <br /></span>那么如果通过<span>userid</span>来查寻一定很慢。<span> <br /><br /></span>所以，请教各位<span> <br /></span>在查询的性能优化上，<span> <br /></span>表结构，数据库结构，<span> <br /></span>有什么好的建议，<span> <br /></span>用<span>mysql</span>实现，是否合适？<span> <br /><br /></span>提示，业务需求中的一个特性是：<span> <br /></span>每个用户都有一个<span>userid</span>，<span> <br /></span>用户只会查自己的数据，不会查看别人的数据。<span> <br /><br /></span>谢谢各位。<span></span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">所有的优化都包含两方面，技术的优化和需求的优化。<span> <br /></span>单表<span>100</span>亿肯定不是一个好做法。即使每条只有<span>1k</span>，总的也差不多有<span>10T</span>，再考虑到备份，更复杂了。<span>mysql</span>单表也不支持<span>10T</span>数据。<span> <br /></span>有一个办法，是根据日期创建新的表插入数据。<span> <br /></span>另外在需求优化方面，可以是只查询近期的数据，那样速度最快。如果要查询历史数据，就单独做一个接口。<span></span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial">&nbsp;</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">我很好奇什么应用能在一年达到<span>100</span>亿的数据？还要用<span>MySQL</span>？<span> <br /><br /></span>简单的优化方法是分两个表存储，最近一段时间（如<span>3</span>个月）放在一个表里，其他放在历史表里，一般只查询第一个表。</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">从硬件入手可以采取<span> <br /><br />1</span>、最简单的提升性能的方法就是提升硬件，增加硬件的投入效果立竿见影，不过这个主要是是投资方的可接受成本问题了。一般的来说从硬件方面的投资主要是购买大型机<span>RS9000,</span>购买磁盘柜（同时也是高可用的需要），增大内存。这些都可以提升系统的速度。<span> <br />2</span>、<span style="color: blue">从软件方面来说首先应该尽量使用<span>64</span>位的数据库，同时数据库应当建立在裸设备上。</span><span> <br />3</span>、<span style="color: blue">对于亿级别的数据通常是历史数据，而百万以及千万级别的数据通常是交易数据，这两种确实有很大区别，历史数据多为了读取，交易数据通常是可修改的，在建立索引的时候要考虑插入的问题。 </span><span><br />4</span>、<span style="color: blue">通常有表分区功能的数据库就不需要在设计上进行分表设计，只有在数据库系统不提供该功能的时候才会采用分表设计。分区要建立在不同的磁盘上以提升<span>IO</span>性能。<span> <br /></span></span><span><br /></span><span style="color: blue">从软件架构和业务层面<span> <br />1.</span>使用<span>SNA</span>进行缓存如：<span>memcached </span>和<span>sina </span>的<span>memcachedb</span>；<span> <br />2.ORMapping</span>（如<span>hibernate</span>）的<span>session</span>缓存和线程级别缓存；<span> <br />3.</span>使用<span>&ldquo;</span>领域模型驱动<span>&rdquo;</span>的分析设计方法分析业务；<span> <br /></span>这里关键是<span>&quot;</span>领域模型驱动设计<span>&quot;</span>，因为性能之所以优化，而不是提升，是因为总有一天优化不下去；只有领域逐渐清晰才可能使系统具有伸缩性；</span><span></span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial">&nbsp;</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">&nbsp;&nbsp; 100</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">亿条记录如果都存在一个表里，这样的速度<span>mysql</span>肯定是要被摒弃，就算<span>oracle</span>也吃不消这样的数据量，你这一张表就吃掉<span>N</span>多<span>dbf</span>。建议把表结构分拆吧，比如说你查询可以做一个联合查询接口或视图，该视图可以通过多张<span>users</span>表演化而来，先前的<span>user</span>表被拆分成若干表，对常用用户的表单独处理，对不常用的用户会定时通过程序进行数据转移<span>,</span>当然<span>oracle</span>的索引是少不了的，不过从根本上看这么大的数据量的表设计就有问题，或许从整个项目的构架上去考虑，重新设计才能正确解决这张表的性能问题。</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">楼上的回答都可以参考一下<span> <br /></span>如果在<span>mysql</span>上只是提供查询功能，是否可以这样：<span> <br /></span>建立总表，存放历史所有数据，再根据时间，比如<span>2</span>个月或者<span>1</span>个月一个表建立分表，如果只查询某个人的信息的话，查询分表就好了，要是进行统计的话，对总表进行操作，看情况增加缓存功能</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">100</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">亿数据量大了，<span>mysql</span>单表好支持不了都少。<span style="color: blue">如果不拆分数据，只能用分区来存储了</span>，查询的优化就不说了。<span></span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">分表吧<span>...</span>你看你的<span>100y</span>数据是否都需要查询或者调用<span>..</span>如果对查询不是很高<span>...</span>可以做<span>bigfile</span>放弃数据库存贮<span>..</span>靠文件流和偏移量读取<span>..</span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">mysql</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">不合适，数据太大了！<span style="color: blue">考虑一下创建物理索引</span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">兄弟<span>,</span>你只有做分表了<span>.</span>你可分成<span>10000</span>张表<span>,</span>把数据拆分开<span>,</span>平均放到这些表中<span>,</span>这样每张表相当于<span>100</span>万条数据<span>,</span>我想应该很快的<span>.</span>分表的具体方法我们可以再讨论</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">Mysql</span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">一张表有<span>100</span>亿才很快的话<span> oracle</span>早就关门了<span> <br />oracle</span>有<span>100</span>亿也吃不消的<span> <br /></span><span style="color: blue">你可以分到多张表里 比如按月来分</span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial"></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt">===========================================================================</span><span style="line-height: 150%; font-family: 宋体; color: blue; font-size: 12pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">只能分拆表<span></span></span><span style="line-height: 150%; font-family: 宋体; font-size: 12pt; mso-bidi-font-family: arial">&nbsp;</span>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/306.htm</link>
<title><![CDATA[【转】PHP 实现多服务器共享 SESSION 数据]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Wed, 02 Mar 2011 04:54:26 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/306.htm</guid> 
<description>
<![CDATA[ 
	<div class="blog_content"><p>一、问题起源<br />稍大一些的网站，通常都会有好几个服务器，每个服务器运行着不同功能的模块，使用不同的二级域名，而一个整体性强的网站，用户系统是统一的，即一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的，只需要在后端放个数据库服务器，各个服务器通过统一接口对用户数据进行访问即可。但还存在一个问题，就是用户在这个服务器登录之后，进入另一个服务器的别的模块时，仍然需要重新登录，这就是一次登录，全部通行的问题，映射到技术上，其实就是各个服务器之间如何实现共享 SESSION 数据的问题。<br /><br />二、PHP SESSION 的工作原理<br /><br />在解决问题之前，先来了解一下 PHP SESSION 的工作原理。在客户端（如浏览器）登录网站时，被访问的 PHP 页面可以使用 session_start() 打开 SESSION，这样就会产生客户端的唯一标识 SESSION ID（此 ID 可通过函数 session_id() 获取/设置）。SESSION ID 可以通过两种方式保留在客户端，使得请求不同的页面时，PHP 程序可以获知客户端的 SESSION ID；一种是将 SESSION ID 自动加入到 GET 的 URL 中，或者 POST 的表单中，默认情况下，变量名为 PHPSESSID；另一种是通过 COOKIE，将 SESSION ID 保存在 COOKIE 中，默认情况下，这个 COOKIE 的名字为 PHPSESSID。这里我们主要以 COOKIE 方式进行说明，因为应用比较广泛。<br /><br />那么 SESSION 的数据保存在哪里呢？当然是在服务器端，但不是保存在内存中，而是保存在文件或数据库中。默认情况下，php.ini 中设置的 SESSION 保存方式是 files（session.save_handler = files），即使用读写文件的方式保存 SESSION 数据，而 SESSION 文件保存的目录由 session.save_path 指定，文件名以 sess_ 为前缀，后跟 SESSION ID，如：sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据即是序列化之后的 SESSION 数据了。如果访问量大，可能产生的 SESSION 文件会比较多，这时可以设置分级目录进行 SESSION 文件的保存，效率会提高很多，设置方法为：session.save_path=&quot;N;/save_path&quot;，N 为分级的级数，save_path 为开始目录。当写入 SESSION 数据的时候，PHP 会获取到客户端的 SESSION_ID，然后根据这个 SESSION ID 到指定的 SESSION 文件保存目录中找到相应的 SESSION 文件，不存在则创建之，最后将数据序列化之后写入文件。读取 SESSION 数据是也是类似的操作流程，对读出来的数据需要进行解序列化，生成相应的 SESSION 变量。<br /><br />三、多服务器共享 SESSION 的主要障碍及解决办法<br /><br />通过了解 SESSION 的工作原理，我们可以发现，在默认情况下，各个服务器会各自分别对同一个客户端产生 SESSION ID，如对于同一个用户浏览器，A 服务器产生的 SESSION ID 是 30de1e9de3192ba6ce2992d27a1b6a0a，而 B 服务器生成的则是 c72665af28a8b14c0fe11afe3b59b51b。另外，PHP 的 SESSION 数据都是分别保存在本服务器的文件系统中。<br /><br />确定了问题所在之后，就可以着手进行解决了。想要共享 SESSION 数据，那就必须实现两个目标：一个是各个服务器对同一个客户端产生的 SESSION ID 必须相同，并且可通过同一个 COOKIE 进行传递，也就是说各个服务器必须可以读取同一个名为 PHPSESSID 的 COOKIE；另一个是 SESSION 数据的存储方式/位置必须保证各个服务器都能够访问到。简单地说就是多服务器共享客户端的 SESSION ID，同时还必须共享服务器端的 SESSION 数据。<br /><br />第一个目标的实现其实很简单，只需要对 COOKIE 的域（domain）进行特殊地设置即可，默认情况下，COOKIE 的域是当前服务器的域名/IP 地址，而域不同的话，各个服务器所设置的 COOKIE 是不能相互访问的，如 <a id="url_3" href="http://www.aaa.com/" target="_blank"><span style="color: #108ac6">www.aaa.com</span></a> 的服务器是不能读写 <a id="url_4" href="http://www.bbb.com/" target="_blank"><span style="color: #108ac6">www.bbb.com</span></a> 服务器设置的 COOKIE 的。<br /><br />这里我们所说的同一网站的服务器有其特殊性，那就是他们同属于同一个一级域，如：aaa.infor96.com 和 <a id="url_5" href="http://www.infor96.com/" target="_blank"><span style="color: #108ac6">www.infor96.com</span></a> 都属于域 .infor96.com，那么我们就可以设置 COOKIE 的域为 .infor96.com，这样 aaa.infor96.com、<a id="url_6" href="http://www.infor96.com/" target="_blank"><span style="color: #108ac6">www.infor96.com</span></a> 等等都可以访问此 COOKIE。PHP 代码中的设置方法如下：<br /><br />&lt;?php<br />ini_set('session.cookie_domain', '.infor96.com');<br />?&gt;<br /><br />这样各个服务器共享同一客户端 SESSION ID 的目的就达到了。<br /><br />第二个目标的实现可以使用文件共享方式，如 NFS 方式，但设置、操作上有些复杂。我们可以参考先前所说的统一用户系统的方式，即使用数据库来保存 SESSION 数据，这样各个服务器就可以方便地访问同一个数据源，获取相同的 SESSION 数据了。<br /><br /><br />四、代码实现<br /><br />首先创建数据表，MySQL 的 SQL 语句如下：<br />&nbsp; CREATE TABLE `sess` (<br />&nbsp; &nbsp; `sesskey` varchar(32) NOT NULL default '',<br />&nbsp; &nbsp; &nbsp; `expiry` bigint(20) NOT NULL default '0',<br />&nbsp; &nbsp; &nbsp; `data` longtext NOT NULL,<br />&nbsp; &nbsp; &nbsp; PRIMARY KEY&nbsp; (`sesskey`),<br />&nbsp; &nbsp; &nbsp; KEY `expiry` (`expiry`)<br />&nbsp; &nbsp; ) TYPE=MyISAMsesskey 为 SESSION ID，expiry 为 SESSION 过期时间，data 用于保存 SESSION 数据。<br /><br />默认情况下 SESSION 数据是以文件方式保存，想要使用数据库方式保存，就必须重新定义 SESSION 各个操作的处理函数。PHP 提供了session_set_save_handle() 函数，可以用此函数自定义 SESSION 的处理过程，当然首先要先将 session.save_handler 改成 user，可在 PHP 中进行设置：<br /><br />&lt;?php <br />session_module_name('user');<br />?&gt;<br /><br />接下来着重讲一下 session_set_save_handle() 函数，此函数有六个参数：<br /><br />session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc )各个参数为各项操作的函数名，这些操作依次是：打开、关闭、读取、写入、销毁、垃圾回收。PHP 手册中有详细的例子，在这里我们使用 OO 的方式来实现这些操作，详细代码如下：</p><div class="dp-highlighter"><div class="bar"><div class="tools">Php代码 <a href="admin.php" title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;"></a></div></div><ol class="dp-c"><li><span><span>&lt;?php &nbsp;&nbsp;</span></span></li><li><span>define(</span><span class="string"><span style="color: #0000ff">'MY_SESS_TIME'</span></span><span>,&nbsp;3600);&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//SESSION&nbsp;生存时长 </span></span><span>&nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//类定义 </span></span><span>&nbsp;&nbsp;</span></li><li><span class="keyword"><strong><span style="color: #7f0055">class</span></strong></span><span>&nbsp;My_Sess &nbsp;&nbsp;</span></li><li><span>&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;init() &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$domain</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'.infor96.com'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//不使用&nbsp;GET/POST&nbsp;变量方式 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="func">ini_set</span><span>(</span><span class="string"><span style="color: #0000ff">'session.use_trans_sid'</span></span><span>,&nbsp;&nbsp;&nbsp;&nbsp;0); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//设置垃圾回收最大生存时间 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="func">ini_set</span><span>(</span><span class="string"><span style="color: #0000ff">'session.gc_maxlifetime'</span></span><span>,&nbsp;&nbsp;MY_SESS_TIME); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//使用&nbsp;COOKIE&nbsp;保存&nbsp;SESSION&nbsp;ID&nbsp;的方式 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="func">ini_set</span><span>(</span><span class="string"><span style="color: #0000ff">'session.use_cookies'</span></span><span>,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="func">ini_set</span><span>(</span><span class="string"><span style="color: #0000ff">'session.cookie_path'</span></span><span>,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string"><span style="color: #0000ff">'/'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//多主机共享保存&nbsp;SESSION&nbsp;ID&nbsp;的&nbsp;COOKIE </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="func">ini_set</span><span>(</span><span class="string"><span style="color: #0000ff">'session.cookie_domain'</span></span><span>,&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$domain</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//将&nbsp;session.save_handler&nbsp;设置为&nbsp;user，而不是默认的&nbsp;files </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session_module_name(</span><span class="string"><span style="color: #0000ff">'user'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//定义&nbsp;SESSION&nbsp;各项操作所对应的方法名： </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session_set_save_handler( &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'My_Sess'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'open'</span></span><span>),&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//对应于静态方法&nbsp;My_Sess::open()，下同。 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'My_Sess'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'close'</span></span><span>), &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'My_Sess'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'read'</span></span><span>), &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'My_Sess'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'write'</span></span><span>), &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'My_Sess'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'destroy'</span></span><span>), &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'My_Sess'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'gc'</span></span><span>) &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;open(</span><span class="vars">$save_path</span><span>,&nbsp;</span><span class="vars">$session_name</span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;true; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;close()&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">global</span></strong></span><span>&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(</span><span class="vars">$MY_SESS_CONN</span><span>)&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//关闭数据库连接 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;Close(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;true; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;read(</span><span class="vars">$sesskey</span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">global</span></strong></span><span>&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$sql</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'SELECT&nbsp;data&nbsp;FROM&nbsp;sess&nbsp;WHERE&nbsp;sesskey='</span></span><span>&nbsp;.&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;qstr(</span><span class="vars">$sesskey</span><span>)&nbsp;.&nbsp;</span><span class="string"><span style="color: #0000ff">'&nbsp;AND&nbsp;expiry&gt;='</span></span><span>&nbsp;.&nbsp;time(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$rs</span><span>&nbsp;=&amp;&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;Execute(</span><span class="vars">$sql</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(</span><span class="vars">$rs</span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(</span><span class="vars">$rs</span><span>-&gt;EOF)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;</span><span class="string"><span style="color: #0000ff">''</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">else</span></strong></span><span>&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//读取到对应于&nbsp;SESSION&nbsp;ID&nbsp;的&nbsp;SESSION&nbsp;数据 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$v</span><span>&nbsp;=&nbsp;</span><span class="vars">$rs</span><span>-&gt;fields[0]; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$rs</span><span>-&gt;Close(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;</span><span class="vars">$v</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;if </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;if </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;</span><span class="string"><span style="color: #0000ff">''</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;write(</span><span class="vars">$sesskey</span><span>,&nbsp;</span><span class="vars">$data</span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">global</span></strong></span><span>&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$qkey</span><span>&nbsp;=&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;qstr(</span><span class="vars">$sesskey</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$expiry</span><span>&nbsp;=&nbsp;time()&nbsp;+&nbsp;My_SESS_TIME;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//设置过期时间 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//写入&nbsp;SESSION </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$arr</span><span>&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">array</span></strong></span><span>( &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string"><span style="color: #0000ff">'sesskey'</span></span><span>&nbsp;=&gt;&nbsp;</span><span class="vars">$qkey</span><span>, &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string"><span style="color: #0000ff">'expiry'</span></span><span>&nbsp;&nbsp;=&gt;&nbsp;</span><span class="vars">$expiry</span><span>, &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string"><span style="color: #0000ff">'data'</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="vars">$data</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;Replace(</span><span class="string"><span style="color: #0000ff">'sess'</span></span><span>,&nbsp;</span><span class="vars">$arr</span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'sesskey'</span></span><span>,&nbsp;</span><span class="vars">$autoQuote</span><span>&nbsp;=&nbsp;true); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;true; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;destroy(</span><span class="vars">$sesskey</span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">global</span></strong></span><span>&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$sql</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'DELETE&nbsp;FROM&nbsp;sess&nbsp;WHERE&nbsp;sesskey='</span></span><span>&nbsp;.&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;qstr(</span><span class="vars">$sesskey</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$rs</span><span>&nbsp;=&amp;&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;Execute(</span><span class="vars">$sql</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;true; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">function</span></strong></span><span>&nbsp;gc(</span><span class="vars">$maxlifetime</span><span>&nbsp;=&nbsp;null)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">global</span></strong></span><span>&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$sql</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'DELETE&nbsp;FROM&nbsp;sess&nbsp;WHERE&nbsp;expiry&lt;'</span></span><span>&nbsp;.&nbsp;time(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;Execute(</span><span class="vars">$sql</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//由于经常性的对表&nbsp;sess&nbsp;做删除操作，容易产生碎片， </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//所以在垃圾回收中对该表进行优化操作。 </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$sql</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'OPTIMIZE&nbsp;TABLE&nbsp;sess'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$MY_SESS_CONN</span><span>-&gt;Execute(</span><span class="vars">$sql</span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;true; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//end&nbsp;function </span></span><span>&nbsp;&nbsp;</span></li><li><span>&#125;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">///:~ </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//使用&nbsp;ADOdb&nbsp;作为数据库抽象层。 </span></span><span>&nbsp;&nbsp;</span></li><li><span class="keyword"><strong><span style="color: #7f0055">require_once</span></strong></span><span>(</span><span class="string"><span style="color: #0000ff">'adodb/adodb.inc.php'</span></span><span>); &nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//数据库配置项，可放入配置文件中（如：config.inc.php）。 </span></span><span>&nbsp;&nbsp;</span></li><li><span class="vars">$db_type</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'mysql'</span></span><span>; &nbsp;&nbsp;</span></li><li><span class="vars">$db_host</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'192.168.212.1'</span></span><span>; &nbsp;&nbsp;</span></li><li><span class="vars">$db_user</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'sess_user'</span></span><span>; &nbsp;&nbsp;</span></li><li><span class="vars">$db_pass</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'sess_pass'</span></span><span>; &nbsp;&nbsp;</span></li><li><span class="vars">$db_name</span><span>&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">'sess_db'</span></span><span>; &nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//创建数据库连接，这是一个全局变量。 </span></span><span>&nbsp;&nbsp;</span></li><li><span class="vars">$GLOBALS</span><span>[</span><span class="string"><span style="color: #0000ff">'MY_SESS_CONN'</span></span><span>]&nbsp;=&amp;&nbsp;ADONewConnection(</span><span class="vars">$db_type</span><span>); &nbsp;&nbsp;</span></li><li><span class="vars">$GLOBALS</span><span>[</span><span class="string"><span style="color: #0000ff">'MY_SESS_CONN'</span></span><span>]-&gt;Connect(&nbsp;</span><span class="vars">$db_host</span><span>,&nbsp;</span><span class="vars">$db_user</span><span>,&nbsp;</span><span class="vars">$db_pass</span><span>,&nbsp;</span><span class="vars">$db_name</span><span>); &nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//初始化&nbsp;SESSION&nbsp;设置，必须在&nbsp;session_start()&nbsp;之前运行！！ </span></span><span>&nbsp;&nbsp;</span></li><li><span>My_Sess::init(); &nbsp;&nbsp;</span></li><li><span>?&gt;&nbsp;&nbsp;</span></li></ol></div><pre class="php" style="display: none">&lt;?php define('MY_SESS_TIME', 3600);&nbsp;&nbsp;//SESSION 生存时长 //类定义 class My_Sess &#123;&nbsp;&nbsp;&nbsp;&nbsp; function init()&nbsp;&nbsp;&nbsp;&nbsp; &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $domain = '.infor96.com';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //不使用 GET/POST 变量方式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ini_set('session.use_trans_sid',&nbsp;&nbsp;&nbsp;&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置垃圾回收最大生存时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ini_set('session.gc_maxlifetime',&nbsp;&nbsp;MY_SESS_TIME);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使用 COOKIE 保存 SESSION ID 的方式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ini_set('session.use_cookies',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ini_set('session.cookie_path',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'/');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //多主机共享保存 SESSION ID 的 COOKIE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ini_set('session.cookie_domain',&nbsp;&nbsp;&nbsp;&nbsp;$domain);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//将 session.save_handler 设置为 user，而不是默认的 files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session_module_name('user');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义 SESSION 各项操作所对应的方法名：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session_set_save_handler(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array('My_Sess', 'open'),&nbsp;&nbsp;//对应于静态方法 My_Sess::open()，下同。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array('My_Sess', 'close'),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array('My_Sess', 'read'),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array('My_Sess', 'write'),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array('My_Sess', 'destroy'),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array('My_Sess', 'gc')&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function open($save_path, $session_name) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function close() &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; global $MY_SESS_CONN;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($MY_SESS_CONN) &#123;&nbsp;&nbsp;&nbsp;&nbsp;//关闭数据库连接&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $MY_SESS_CONN-&gt;Close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function read($sesskey) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; global $MY_SESS_CONN;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = 'SELECT data FROM sess WHERE sesskey=' . $MY_SESS_CONN-&gt;qstr($sesskey) . ' AND expiry&gt;=' . time();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $rs =&amp; $MY_SESS_CONN-&gt;Execute($sql);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($rs) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($rs-&gt;EOF) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return '';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125; else &#123;&nbsp;&nbsp;&nbsp;&nbsp;//读取到对应于 SESSION ID 的 SESSION 数据&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $v = $rs-&gt;fields[0];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $rs-&gt;Close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $v;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end if&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end if&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return '';&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function write($sesskey, $data) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; global $MY_SESS_CONN;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $qkey = $MY_SESS_CONN-&gt;qstr($sesskey);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $expiry = time() + My_SESS_TIME;&nbsp;&nbsp;&nbsp;&nbsp;//设置过期时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //写入 SESSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $arr = array(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'sesskey' =&gt; $qkey,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'expiry'&nbsp;&nbsp;=&gt; $expiry,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'data'&nbsp;&nbsp;&nbsp;&nbsp;=&gt; $data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $MY_SESS_CONN-&gt;Replace('sess', $arr, 'sesskey', $autoQuote = true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function destroy($sesskey) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; global $MY_SESS_CONN;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = 'DELETE FROM sess WHERE sesskey=' . $MY_SESS_CONN-&gt;qstr($sesskey);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $rs =&amp; $MY_SESS_CONN-&gt;Execute($sql);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function gc($maxlifetime = null) &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; global $MY_SESS_CONN;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = 'DELETE FROM sess WHERE expiry&lt;' . time();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $MY_SESS_CONN-&gt;Execute($sql);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //由于经常性的对表 sess 做删除操作，容易产生碎片，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //所以在垃圾回收中对该表进行优化操作。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $sql = 'OPTIMIZE TABLE sess';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $MY_SESS_CONN-&gt;Execute($sql);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp;//end function &#125;&nbsp;&nbsp;///:~&nbsp;&nbsp;//使用 ADOdb 作为数据库抽象层。 require_once('adodb/adodb.inc.php'); //数据库配置项，可放入配置文件中（如：config.inc.php）。 $db_type = 'mysql'; $db_host = '192.168.212.1'; $db_user = 'sess_user'; $db_pass = 'sess_pass'; $db_name = 'sess_db'; //创建数据库连接，这是一个全局变量。 $GLOBALS['MY_SESS_CONN'] =&amp; ADONewConnection($db_type); $GLOBALS['MY_SESS_CONN']-&gt;Connect( $db_host, $db_user, $db_pass, $db_name); //初始化 SESSION 设置，必须在 session_start() 之前运行！！ My_Sess::init(); ?&gt;</pre>&nbsp; <p>五、遗留问题<br /><br />如果网站的访问量很大的话，SESSION 的读写会频繁地对数据库进行操作，这样效率就会明显降低。考虑到 SESSION 数据一般不会很大，可以尝试用 C/Java 写个多线程的程序，用 HASH 表保存 SESSION 数据，并通过 socket 通信进行数据读写，这样 SESSION 就保存在内存中，读写速度应该会快很多。另外还可以通过负载均衡来分担服务器负载。</p><p></p><p>网站服的访问量很大时，Memcache-php是一种不错的解决方案。</p></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/305.htm</link>
<title><![CDATA[PHP 及的非正常用法]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Wed, 02 Mar 2011 04:50:04 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/305.htm</guid> 
<description>
<![CDATA[ 
	<div class="blog_content"><p>&amp;&amp;及&#124;&#124;的非正常用法</p><p>$a &amp;&amp; $b=10;<br />当$a为真是才执行$b=10;<br />$a &#124;&#124; $b=10;<br />当$a为假是才执行$b=10;</p><p></p></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/304.htm</link>
<title><![CDATA[PHP学习---变量使用总结]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Wed, 02 Mar 2011 04:38:29 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/304.htm</guid> 
<description>
<![CDATA[ 
	<strong>1.定义常量</strong>define(&quot;CONSTANT&quot;, &quot;Hello world.&quot;); <br />常量只能包含标量数据（boolean，integer，float 和 string）。 <br />调用常量时，只需要简单的用名称取得常量的值，而不能加&ldquo;$&rdquo;符号，如：echo CONSTANT； <br />注: 常量和（全局）变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。 <br /><br /><strong>2.普通变量</strong>$a = &quot;hello&quot;; <br /><br /><strong>3.可变变量（使用两个美元符号（$））</strong> <br />$$a = &quot;world&quot;; <br />两个变量都被定义了： <br />$a 的内容是&ldquo;hello&rdquo;并且 $hello 的内容是&ldquo;world&rdquo;。 <br />因此，可以表述为： <br />echo &quot;$a $&#123;$a&#125;&quot;;或者&nbsp; echo &quot;$a $hello&quot;;它们都会输出：hello world <br />要将可变变量用于数组，必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时，解析器需要知道是想要 $a[1] 作为一个变量呢，还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是，对第一种情况用 $&#123;$a[1]&#125;，对第二种情况用 $&#123;$a&#125;[1]。 <br /><br /><strong>4.静态变量</strong> <br />在函数内部static $a = 0; <br />注意：声明中用表达式的结果对其赋值会导致解析错误如static&nbsp; $a =3+3;（error） <br />静态变量仅在局部函数域中存在（函数内部），函数执行完之后，变量值不会丢失,可用于递归调用 <br /><br /><strong>5.全局变量</strong> <br />在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用，在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组： <br />如：$GLOBALS[&quot;b&quot;] = $GLOBALS[&quot;a&quot;] + $GLOBALS[&quot;b&quot;]; <br />在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用 <br />global $obj; <br />注：对于变量的 static 和 global 定义是以 应用 的方式实现的 <br /><br /><strong>6.给变量赋值：传地址赋值（简单引用）：</strong> <br />$bar = &amp;$foo;&nbsp; //加&amp;符号到将要赋值的变量前 <br />改动新的变量将影响到原始变量，这种赋值操作更加快速 <br />注意：只有命名变量才可以传地址赋值 <br />注意：如果 <br />$bar = &amp;$a; <br />$bar = &amp;$foo; <br />改变$bar的值只能改变变量foo的值，而不改变a的值（引用改变了） <br /><br /><strong>7.PHP 超全局变量</strong>$GLOBALS ： 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。 <br />$_SERVER ： 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组（依然有效，但反对使用）。 <br />$_GET ：&nbsp;&nbsp;&nbsp; 经由 HTTP GET 方法提交至脚本的变量。 <br />$_POST ：&nbsp;&nbsp; 经由 HTTP POST 方法提交至脚本的变量。 <br />$_COOKIE ： 经由 HTTP Cookies 方法提交至脚本的变量。 <br />$_FILES ：&nbsp; 经由 HTTP POST 文件上传而提交至脚本的变量。 <br />文件上传表单中要有 enctype=&quot;multipart/form-data&quot; <br />$_ENV ：&nbsp;&nbsp;&nbsp; 执行环境提交至脚本的变量。 <br />$_REQUEST ：经由 GET，POST 和 COOKIE 机制提交至脚本的变量，因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。 <br />注意：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自 PHP 4.3.0 起，$_FILES 中的文件信息不再存在于 $_REQUEST 中。 <br />$_SESSION ：当前注册给脚本会话的变量。
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/303.htm</link>
<title><![CDATA[php引用()详解]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Wed, 02 Mar 2011 04:32:23 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/303.htm</guid> 
<description>
<![CDATA[ 
	<div class="blog_content">php引用(&amp;)详解 <br />php的引用（就是在变量或者函数、对象等前面加上&amp;符号） <br /><br />在PHP 中引用的意思是：不同的名字访问同一个变量内容. <br />与Ｃ语言中的指针是有差别的．Ｃ语言中的指针里面存储的是变量的内容在内存中存放的地址 <br /><br />变量的引用 <br /><br />PHP 的引用允许你用两个变量来指向同一个内容 <br />&lt;? <br />$a=&quot;ABC&quot;; <br />$b =&amp;$a; <br />echo $a;//这里输出:ABC <br />echo $b;//这里输出:ABC <br />$b=&quot;EFG&quot;; <br />echo $a;//这里$a的值变为EFG 所以输出EFG <br />echo $b;//这里输出EFG <br />?&gt; <br /><br />函数的传址调用 <br />传址调用我就不多说了 下面直接给出代码 <br />function test(&amp;$a) <br />&#123; <br />$a=$a+100; <br />&#125; <br />$b=1; <br />echo $b;//输出１ <br />test($b);&nbsp;&nbsp; //这里$b传递给函数的其实是$b的变量内容所处的内存地址，通过在函数里改变$a的值　就可以改变$b的值了 <br />echo &quot;&lt;br&gt;&quot;; <br />echo $b;//输出101 <br />要注意的是，在这里test(１);的话就会出错，原因自己去想 <br /><br />函数的引用返回 <br />先看代码 <br />function &amp;test() <br />&#123; <br />static $b=0;//申明一个静态变量 <br />$b=$b+1; <br />echo $b; <br />return $b; <br />&#125; <br /><br />$a=test();//这条语句会输出　$b的值　为１ <br />$a=5; <br />$a=test();//这条语句会输出　$b的值　为2 <br /><br />$a=&amp;test();//这条语句会输出　$b的值　为3 <br />$a=5; <br />$a=test();//这条语句会输出　$b的值　为6 <br />下面解释下：　 <br />通过这种方式$a=test();得到的其实不是函数的引用返回，这跟普通的函数调用没有区别　至于原因：　这是ＰＨＰ的规定 <br />ＰＨＰ规定通过$a=&amp;test(); 方式得到的才是函数的引用返回 <br />至于什么是引用返回呢（ＰＨＰ手册上说：引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。) 这句狗屁话　害我半天没看懂 <br /><br />用上面的例子来解释就是 <br />$a=test()方式调用函数，只是将函数的值赋给$a而已，　而$a做任何改变　都不会影响到函数中的$b <br />而通过$a=&amp;test()方式调用函数呢, 他的作用是　将return $b中的　$b变量的内存地址与$a变量的内存地址　指向了同一个地方 <br />即产生了相当于这样的效果($a=&amp;b;) 所以改变$a的值　也同时改变了$b的值　所以在执行了 <br />$a=&amp;test(); <br />$a=5; <br />以后，$b的值变为了5 <br /><br />这里是为了让大家理解函数的引用返回才使用静态变量的，其实函数的引用返回多用在对象中 <br /><br />对象的引用 <br />&lt;? <br />class a&#123; <br />var $abc=&quot;ABC&quot;; <br />&#125; <br />$b=new a; <br />$c=$b; <br />echo $b-&gt;abc;//这里输出ABC <br />echo $c-&gt;abc;//这里输出ABC <br />$b-&gt;abc=&quot;DEF&quot;; <br />echo $c-&gt;abc;//这里输出DEF <br />?&gt; <br />以上代码是在PHP5中的运行效果 <br />在PHP5中 对象的复制 是通过引用来实现的。上列中$b=new a; $c=$b; 其实等效于$b=new a; $c=&amp;$b; <br />PHP5中默认就是通过引用来调用对象， 但有时你可能想建立一个对象的副本，并希望原来的对象的改变不影响到副本 . 为了这样的目的，PHP定义了一个特殊的方法，称为__clone. <br /><br />引用的作用 <br />如果程序比较大,引用同一个对象的变量比较多,并且希望用完该对象后手工清除它,个人建议用 &quot;&amp;&quot; 方式,然后用$var=null的方式清除. 其它时候还是用php5的默认方式吧. 另外, php5中对于大数组的传递,建议用 &quot;&amp;&quot; 方式, 毕竟节省内存空间使用。 <br /><br /><br />取消引用 <br />当你 unset 一个引用，只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如： <br /><br />&lt;?php <br />$a = 1; <br />$b =&amp; $a; <br />unset ($a); <br />?&gt; <br /><br />不会 unset $b，只是 $a。 <br /><br /><br />global 引用 <br />当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的： <br /><br />&lt;?php <br />$var =&amp; $GLOBALS[&quot;var&quot;]; <br />?&gt; <br /><br />这意味着，例如，unset $var 不会 unset 全局变量。 <br /><br />$this <br />在一个对象的方法中，$this 永远是调用它的对象的引用。 <br /><br /><br />//下面再来个小插曲 <br />php中对于地址的指向（类似指针）功能不是由用户自己来实现的，是由Zend核心实现的，php中引用采用的是&ldquo;写时拷贝&rdquo;的原理，就是除非发生写操作，指向同一个地址的变量或者对象是不会被拷贝的。 <br /><br />通俗的讲 <br />1:如果有下面的代码 <br />$a=&quot;ABC&quot;; <br />$b=$a; <br />其实此时　$a与$b都是指向同一内存地址　而并不是$a与$b占用不同的内存 <br /><br />２:如果在上面的代码基础上再加上如下代码 <br />$a=&quot;EFG&quot;; <br />由于$a与$b所指向的内存的数据要重新写一次了，此时Zend核心会自动判断　自动为$b生产一个$a的数据拷贝，重新申请一块内存进行存储<br /><br />来源：http://hi.baidu.com/webchenhui/blog/item/ba39184f9e8c24c2d1c86ab4.html <br /></div>
]]>
</description>
</item><item>
<link>http://www.gaoolp.com/read.php/302.htm</link>
<title><![CDATA[张家港夜间经过长途车站的公交车大全]]></title> 
<author>gaoolp &lt;gaoolp@126.com&gt;</author>
<category><![CDATA[收藏]]></category>
<pubDate>Sun, 27 Feb 2011 02:57:26 +0000</pubDate> 
<guid>http://www.gaoolp.com/read.php/302.htm</guid> 
<description>
<![CDATA[ 
	<table border="0" cellspacing="0" cellpadding="0" width="95%" align="center"><tbody><tr><td colspan="2"><div><div><div><span><p align="left"><span><strong><span style="font-family: 宋体">张家港晚间公交班车，途径长途车站的有：<br /><br />5路夜班(环形)&nbsp;<span>&nbsp;</span>客运站（新长途车站）（客运站首18：05、末21：00 &nbsp;班次间隔15）<br /></span></strong></span></p><p align="left"><span><span><span style="font-family: 宋体"><strong><span style="color: #ff0000">东线</span>：<span>客运站（新长途汽车站）</span>&mdash;实验小学东校区&mdash;梁丰花园&mdash;张高中&mdash;外国语学校&mdash;血站&mdash;二职中&mdash;澳洋顺济医院&mdash;电视大学&mdash;市政府&mdash;国贸酒店&mdash;<span>电信大厦（老长途汽车站旧址）</span>&mdash;张家港宾馆&mdash;社保大厦&mdash;图书馆&mdash;金海华&mdash;大润发&mdash;杨舍镇计生站&mdash;大成商贸&mdash;沙洲中学&mdash;南门路&mdash;国税局&mdash;港城汽车站&mdash;澳洋医院&mdash;东方明珠&mdash;<span>客运站（新长途汽车站）</span></strong></span></span></span></p><p align="left"><span><span><span style="font-family: 宋体"><strong><span style="color: #ff0000">西线</span>：<span>客运站（新长途汽车站）</span>&mdash;东方明珠&mdash;澳洋医院&mdash;港城汽车站&mdash;国税局&mdash;南门路&mdash;沙洲中学&mdash;大成商贸&mdash;杨舍镇计生站&mdash;张家港公园&mdash;大润发&mdash;金海华&mdash;图书馆&mdash;社保大厦&mdash;张家港宾馆&mdash;<span>电信大厦（老长途汽车站旧址）</span>&mdash;国贸酒店&mdash;市政府&mdash;电视大学&mdash;澳洋顺济医院&mdash;二职中&mdash;血站&mdash;外国语学校&mdash;张高中&mdash;梁丰花园&mdash;实验小学东校区&mdash;<span>客运站（新长途汽车站）</span></strong></span></span></span></p></span><strong><span>10</span></strong><strong><span>路夜班</span></strong><strong><span> </span></strong><strong><span>香港城</span></strong><strong><span>&mdash;</span></strong><strong><span>东莱（香港城</span></strong><strong><span>&mdash;</span></strong><strong><span>首</span></strong><strong><span>18</span></strong><strong><span>：</span></strong><strong><span>25 </span></strong><strong><span>末</span></strong><strong><span>20</span></strong><strong><span>：</span></strong><strong><span>45 </span></strong><strong><span>文化广场</span></strong><strong><span>&mdash;</span></strong><strong><span>首</span></strong><strong><span>19</span></strong><strong><span>：</span></strong><strong><span>15 </span></strong><strong><span>末</span></strong><strong><span>20</span></strong><strong><span>：</span></strong><strong><span>55<span>&nbsp; </span></span></strong><strong><span>班次间隔</span></strong><strong><span>40</span></strong><strong><span>&mdash;</span></strong><strong><span>60</span></strong><strong><span>）</span></strong><strong><span><br /></span></strong><span>香港城</span><span>&mdash;</span><span>交通大厦</span><span>&mdash;</span><strong><span>客运站（新长途汽车站）</span></strong><span>&mdash;</span><span>东方明珠</span><span>&mdash;</span><span>澳洋医院</span><span>&mdash;</span><span>湖滨新村</span><span>&mdash;</span><span>南城花园</span><span>&mdash;</span><span>港城汽车站</span><span>&mdash;</span><span>国际购物中心</span><span>&mdash;</span><span>实验小学</span><span>&mdash;</span><span>慕嘏桥</span><span>&mdash;</span><span>张家港宾馆</span><span>&mdash;</span><strong><span>电信大厦（老长途汽车站旧址）</span></strong><span>&mdash;</span><span>国贸酒店</span><span>&mdash;</span><span>市政府</span><span>&mdash;</span><span>电视大学</span><span>&mdash;</span><span>澳洋顺济医院</span><span>&mdash;</span><span>港通路桥集团</span><span>&mdash;</span><span>华亿集团</span><span>&mdash;</span><span>东门</span><span>&mdash;</span><span>蒋桥</span><span>&mdash;</span><span>新庄桥</span><span>&mdash;</span><span>红蕾学校</span><span>&mdash;</span><span>南桥村</span><span>&mdash;</span><span>东菜车站</span><span>&mdash;</span><span>东莱大桥</span><span>&mdash;</span><span>文化广场</span><span><br /></span><strong><span>13</span></strong><strong><span>路夜班</span></strong><strong><span> </span></strong><strong><span>香港城</span></strong><strong><span>&mdash;</span></strong><strong><span>闸上（香港城</span></strong><strong><span>&mdash;</span></strong><strong><span>首</span></strong><strong><span>18</span></strong><strong><span>：</span></strong><strong><span>30</span></strong><strong><span>末</span></strong><strong><span>20</span></strong><strong><span>：</span></strong><strong><span>00 </span></strong><strong><span>闸上</span></strong><strong><span>&mdash;</span></strong><strong><span>首</span></strong><strong><span>19</span></strong><strong><span>：</span></strong><strong><span>15 </span></strong><strong><span>末</span></strong><strong><span>20</span></strong><strong><span>：</span></strong><strong><span>45 <span>&nbsp;</span></span></strong><strong><span>班次间隔</span></strong><strong><span>90</span></strong><strong><span>）</span></strong><strong><span><br /></span></strong><span>香港城</span><span>&mdash;</span><span>交通大厦</span><span>&mdash;</span><strong><span>客运站（新长途汽车站）</span></strong><span>&mdash;</span><span>东方明珠</span><span>&mdash;</span><span>澳洋医院</span><span>&mdash;</span><span>港城汽车站</span><span>&mdash;</span><span>国际购物中心</span><span>&mdash;</span><span>商业大厦</span><span>&mdash;</span><span>市经委</span><span>&mdash;</span><span>图书馆</span><span>&mdash;</span><span>社保大厦</span><span>&mdash;</span><span>市二中</span><span>&mdash;</span><span>党校</span><span>&mdash;</span><span>云盘菜场</span><span>&mdash;</span><span>云盘新村</span><span>&mdash;</span><span>万红一村</span><span>&mdash;</span><span>第一人民医院</span><span>&mdash;</span><span>泗港办事处</span><span>&mdash;</span><span>悦盛花园</span><span>&mdash;</span><span>泗港中心医院</span><span>&mdash;</span><span>交通加油站</span><span>&mdash;</span><span>农业银行</span><span>&mdash;</span><span>建设银行</span><span>&mdash;</span><span>幸福桥</span><span>&mdash;</span><span>蒋西路</span><span>&mdash;</span><span>章卿村</span><span>&mdash;</span><span>扬帆建材</span><span>&mdash;</span><span>夏家埭</span><span>&mdash;</span><span>闸上</span><span><br /></span><strong><span>205</span></strong><strong><span>路夜班</span></strong><strong><span> </span></strong><strong><span>香港城</span></strong><strong><span>&mdash;</span></strong><strong><span>大新（大新发：</span></strong><strong><span>18</span></strong><strong><span>：</span></strong><strong><span>00 </span></strong><strong><span>香港城发：</span></strong><strong><span>21</span></strong><strong><span>：</span></strong><strong><span>00</span></strong><strong><span>）</span></strong><strong><span><br /></span></strong><p align="left"><span>香港城</span><span>&mdash;</span><span>交通大厦</span><span>&mdash;</span><strong><span>客运站（新长途汽车站）</span></strong><span>&mdash;</span><span>帝景豪园</span><span>&mdash;</span><span>林业局</span><span>&mdash;</span><span>东苑小区</span><span>&mdash;</span><span>外国语学校</span><span>&mdash;</span><span>血站</span><span>&mdash;</span><span>新市河路</span><span>&mdash;</span><span>御景苑</span><span>&mdash;</span><span>市政府</span><span>&mdash;</span><span>国贸酒店</span><span>&mdash;</span><span>公路处</span><span>&mdash;</span><span>锦绣花园</span><span>&mdash;</span><span>国泰科技园</span><span>&mdash;</span><span>高新张铜</span><span>&mdash;</span><span>粱丰食品</span><span>&mdash;</span><span>田垛里</span><span>&mdash;</span><span>国泰北路</span><span>&mdash;</span><span>振兴路</span><span>&mdash;</span><span>东港药化</span><span>&mdash;</span><span>泗港一号桥</span><span>&mdash;</span><span>周家桥</span><span>&mdash;</span><span>晨新路</span><span>&mdash;</span><span>金沙路</span><span>&mdash;</span><span>南新桥</span><span>&mdash;</span><span>南新老桥</span><span>&mdash;</span><span>晨丰桥</span><span>&mdash;</span><span>晨丰村</span><span>&mdash;</span><span>年丰桥</span><span>&mdash;</span><span>长青村</span><span>&mdash;</span><span>为民桥</span><span>&mdash;</span><span>长青桥</span><span>&mdash;</span><span>浦项公寓</span><span>&mdash;</span><span>阳光家园（东）</span><span>&mdash;</span><span>滨江商贸城</span><span>&mdash;</span><span>阳光家园</span><span>&mdash;</span><span>大新菜场</span><span>&mdash;</span><span>农业银行</span><span>&mdash;</span><span>大新车站<br /><br />在张家港这么长时间，一直受到晚上公交太早停开的困扰，夜班车又没有过在站台上公示，不知道为什么张家港公交要省这个钱，把服务大众早抛脑后了，这收集一些张家港夜间公交班车，主要是途径张家港长途车站的，发出来，方便大家查询，欢迎大家补充。</span></p></div></div></div></td></tr><tr align="right"><td colspan="2">&nbsp;</td></tr></tbody></table>
]]>
</description>
</item>
</channel>
</rss>
