﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客网-简单人生-随笔分类-Loving PHP</title><link>http://www.cnitblog.com/neatstudio/category/3374.html</link><description>&lt;span id="textRed"&gt;幻想指点江山，梦中激扬文字&lt;/span&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8108925208243412";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQ1YmgnAIaCN9kTfOCCwhkKPu_93M";
google_ad_channel = "2178876090";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
</description><language>zh-cn</language><lastBuildDate>Tue, 04 Dec 2007 05:25:13 GMT</lastBuildDate><pubDate>Tue, 04 Dec 2007 05:25:13 GMT</pubDate><ttl>60</ttl><item><title>生成静态页面的函数,php爱好者站推荐</title><link>http://www.cnitblog.com/neatstudio/archive/2007/12/04/37313.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Tue, 04 Dec 2007 05:22:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/12/04/37313.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/37313.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/12/04/37313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/37313.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/37313.html</trackback:ping><description><![CDATA[<font id=zoom>
<div class=smalltxt style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 6px 12px 2px; PADDING-TOP: 4px">&nbsp;</div>
<div class=altbg2 id=code535 style="CLEAR: both; BORDER-RIGHT: #f1f1f1 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #f1f1f1 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; MARGIN: -5px 12px 0px; BORDER-LEFT: #f1f1f1 1px solid; WORD-BREAK: break-all; PADDING-TOP: 3px; BORDER-BOTTOM: #f1f1f1 1px solid"><code><span style="COLOR: #000000"><span style="COLOR: #0000bb"></span><span style="COLOR: #007700">&lt;?</span><span style="COLOR: #0000bb">php<br></span><span style="COLOR: #007700">function&nbsp;</span><span style="COLOR: #0000bb">CreateShtml</span><span style="COLOR: #007700">()<br>{<br></span><span style="COLOR: #0000bb">ob_start</span><span style="COLOR: #007700">(</span><span style="COLOR: #dd0000">"callback_CteateShtml"</span><span style="COLOR: #007700">);<br>}<br>function&nbsp;</span><span style="COLOR: #0000bb">callback_CteateShtml</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$buffer</span><span style="COLOR: #007700">)<br>{<br></span><span style="COLOR: #0000bb">$page&nbsp;</span><span style="COLOR: #007700">=&nbsp;</span><span style="COLOR: #0000bb">intval</span><span style="COLOR: #007700">(@</span><span style="COLOR: #0000bb">$_REQUEST</span><span style="COLOR: #007700">[</span><span style="COLOR: #dd0000">"page"</span><span style="COLOR: #007700">]);<br></span><span style="COLOR: #ff8000">//$fileName&nbsp;=&nbsp;$_SERVER['DOCUMENT_ROOT']&nbsp;.&nbsp;dirname($_SERVER['PHP_SELF'])&nbsp;.&nbsp;"/article/"&nbsp;.&nbsp;basename($_SERVER['PHP_SELF'],".php")&nbsp;.&nbsp;($page==0&nbsp;?&nbsp;""&nbsp;:&nbsp;"_"&nbsp;.&nbsp;strval($page))&nbsp;.&nbsp;".html";<br></span><span style="COLOR: #0000bb">$fileName&nbsp;</span><span style="COLOR: #007700">=&nbsp;</span><span style="COLOR: #0000bb">basename</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$_SERVER</span><span style="COLOR: #007700">[</span><span style="COLOR: #dd0000">'PHP_SELF'</span><span style="COLOR: #007700">],</span><span style="COLOR: #dd0000">".php"</span><span style="COLOR: #007700">)&nbsp;.&nbsp;(</span><span style="COLOR: #0000bb">$page</span><span style="COLOR: #007700">==</span><span style="COLOR: #0000bb">0&nbsp;</span><span style="COLOR: #007700">?&nbsp;</span><span style="COLOR: #dd0000">""&nbsp;</span><span style="COLOR: #007700">:&nbsp;</span><span style="COLOR: #dd0000">"_"&nbsp;</span><span style="COLOR: #007700">.&nbsp;</span><span style="COLOR: #0000bb">strval</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$page</span><span style="COLOR: #007700">))&nbsp;.&nbsp;</span><span style="COLOR: #dd0000">".html"</span><span style="COLOR: #007700">;</span><span style="COLOR: #ff8000">//可以在这里修改你的静态页面路径<br></span><span style="COLOR: #0000bb">$fp&nbsp;</span><span style="COLOR: #007700">=&nbsp;</span><span style="COLOR: #0000bb">fopen</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$fileName</span><span style="COLOR: #007700">,</span><span style="COLOR: #dd0000">"wb"</span><span style="COLOR: #007700">);<br></span><span style="COLOR: #0000bb">fwrite</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$fp</span><span style="COLOR: #007700">,</span><span style="COLOR: #0000bb">$buffer</span><span style="COLOR: #007700">);<br></span><span style="COLOR: #0000bb">fclose</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$fp</span><span style="COLOR: #007700">);<br>return&nbsp;</span><span style="COLOR: #0000bb">$buffer</span><span style="COLOR: #007700">;<br>}<br>?&gt;&nbsp;</span></span></code></div>
<br><br><br>举个例<br>把上面的代码保存为 static.php<br>执行下面页面 phpfans.php
<div class=smalltxt style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 6px 12px 2px; PADDING-TOP: 4px">&nbsp;</div>
<div class=altbg2 id=code536 style="CLEAR: both; BORDER-RIGHT: #f1f1f1 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #f1f1f1 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; MARGIN: -5px 12px 0px; BORDER-LEFT: #f1f1f1 1px solid; WORD-BREAK: break-all; PADDING-TOP: 3px; BORDER-BOTTOM: #f1f1f1 1px solid"><code><span style="COLOR: #000000"><span style="COLOR: #0000bb"></span><span style="COLOR: #007700">&lt;?</span><span style="COLOR: #0000bb">php<br></span><span style="COLOR: #007700">include(</span><span style="COLOR: #dd0000">"static.php"</span><span style="COLOR: #007700">);<br></span><span style="COLOR: #0000bb">CreateShtml</span><span style="COLOR: #007700">();<br>?&gt;<br>&lt;</span><span style="COLOR: #0000bb">html&nbsp;xmlns</span><span style="COLOR: #007700">=</span><span style="COLOR: #dd0000">"http://www.w3.org/1999/xhtml"</span><span style="COLOR: #007700">&gt;<br>&lt;</span><span style="COLOR: #0000bb">head</span><span style="COLOR: #007700">&gt;<br>&lt;</span><span style="COLOR: #0000bb">meta&nbsp;http</span><span style="COLOR: #007700">-</span><span style="COLOR: #0000bb">equiv</span><span style="COLOR: #007700">=</span><span style="COLOR: #dd0000">"Content-Type"&nbsp;</span><span style="COLOR: #0000bb">content</span><span style="COLOR: #007700">=</span><span style="COLOR: #dd0000">"text/html;&nbsp;charset=gb2312"&nbsp;</span><span style="COLOR: #007700">/&gt;<br>&lt;</span><span style="COLOR: #0000bb">title</span><span style="COLOR: #007700">&gt;</span><span style="COLOR: #0000bb">无标题文档</span><span style="COLOR: #007700">&lt;/</span><span style="COLOR: #0000bb">title</span><span style="COLOR: #007700">&gt;<br>&lt;/</span><span style="COLOR: #0000bb">head</span><span style="COLOR: #007700">&gt;<br><br>&lt;</span><span style="COLOR: #0000bb">body</span><span style="COLOR: #007700">&gt;<br>&lt;?</span><span style="COLOR: #0000bb">php&nbsp;<br></span><span style="COLOR: #007700">echo&nbsp;</span><span style="COLOR: #dd0000">"php爱好者站欢迎你,http://www.phpfans.net"</span><span style="COLOR: #007700">;<br>?&gt;<br>&lt;/</span><span style="COLOR: #0000bb">body</span><span style="COLOR: #007700">&gt;<br>&lt;/</span><span style="COLOR: #0000bb">html</span><span style="COLOR: #007700">&gt;&nbsp;</span></span></code></div>
<br>将会生成一个 phpfans.html的静态页面<br><br>如果有参数,则用page来传递 如 phpfans.php?page=1<br>则生成 phpfans_1.html的静态页面<br>演示: http://www.phpfans.net 上的所有文章</font><img src ="http://www.cnitblog.com/neatstudio/aggbug/37313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-12-04 13:22 <a href="http://www.cnitblog.com/neatstudio/archive/2007/12/04/37313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[摘]PHP5.1时区设置 </title><link>http://www.cnitblog.com/neatstudio/archive/2007/10/26/35392.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Fri, 26 Oct 2007 05:42:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/10/26/35392.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/35392.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/10/26/35392.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/35392.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/35392.html</trackback:ping><description><![CDATA[<p>原文：<a href="http://www.jianglb.com/2006/12/15/php51-timezone.html">http://www.jianglb.com/2006/12/15/php51-timezone.html</a><br><br>&nbsp;从php5.1.0开始，php.ini里加入了date.timezone这个选项，默认情况下是关闭的</p>
<p>也就是显示的时间（无论用什么php命令）都是格林威治标准时间</p>
<p>和我们的时间差了正好8个小时，有以下3中方法可以恢复正常的时间</p>
<p>1，最简单的方法就是不要用php5.1以上的版本</p>
<p>2，如果一定要用，而且不能修改php.ini，则需要在关于时间的初始化的语句的<br>上面加上 date_default_timezone_set (XXX);<br>cp无此问题</p>
<p>3，一劳永逸，仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号<br>= 后面加XXX，重启http服务（如apache2或iis等）即可</p>
<p>关于XXX，大陆内地可用的值是：Asia/Chongqing ，Asia/Shanghai ，Asia/Urumqi （依次为重庆，上海，乌鲁木齐）<br>港台地区可用：Asia/Macao ，Asia/Hong_Kong ，Asia/Taipei （依次为澳门，香港，台北）<br>还有新加坡：Asia/Singapore</p>
<p>由于程序最后还是会把地名转为时区来计算，所以当你使用的不是内置的区域的时候，程序将自动使用格林威治标准时间<br></p><img src ="http://www.cnitblog.com/neatstudio/aggbug/35392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-10-26 13:42 <a href="http://www.cnitblog.com/neatstudio/archive/2007/10/26/35392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS全选checkBox最佳方案。原创哦</title><link>http://www.cnitblog.com/neatstudio/archive/2007/10/17/35006.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Wed, 17 Oct 2007 09:44:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/10/17/35006.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/35006.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/10/17/35006.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/35006.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/35006.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 933px; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="button"</span><span style="COLOR: #ff0000">&nbsp;name</span><span style="COLOR: #0000ff">=""</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="不计算长度"</span><span style="COLOR: #ff0000">&nbsp;onclick</span><span style="COLOR: #0000ff">="a()"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="button"</span><span style="COLOR: #ff0000">&nbsp;name</span><span style="COLOR: #0000ff">=""</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="全选"</span><span style="COLOR: #ff0000">&nbsp;onclick</span><span style="COLOR: #0000ff">="b()"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="button"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="缓存"</span><span style="COLOR: #ff0000">&nbsp;&nbsp;onclick</span><span style="COLOR: #0000ff">="c()"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="checkbox"</span><span style="COLOR: #ff0000">&nbsp;name</span><span style="COLOR: #0000ff">="test[]"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;测试测试</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">br</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_256_1086_Open_Image onclick="this.style.display='none'; Codehighlighter1_256_1086_Open_Text.style.display='none'; Codehighlighter1_256_1086_Closed_Image.style.display='inline'; Codehighlighter1_256_1086_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_256_1086_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_256_1086_Closed_Text.style.display='none'; Codehighlighter1_256_1086_Open_Image.style.display='inline'; Codehighlighter1_256_1086_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">language</span><span style="COLOR: #0000ff">="JavaScript"</span><span style="COLOR: #0000ff">&gt;</span><span id=Codehighlighter1_256_1086_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_256_1086_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;!--</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;ca&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">new</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;Array();<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;a()<br><img id=Codehighlighter1_301_475_Open_Image onclick="this.style.display='none'; Codehighlighter1_301_475_Open_Text.style.display='none'; Codehighlighter1_301_475_Closed_Image.style.display='inline'; Codehighlighter1_301_475_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_301_475_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_301_475_Closed_Text.style.display='none'; Codehighlighter1_301_475_Open_Image.style.display='inline'; Codehighlighter1_301_475_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_301_475_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_301_475_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;document.getElementsByName('test[]');<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">for</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m.length&nbsp;;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;)<br><img id=Codehighlighter1_390_472_Open_Image onclick="this.style.display='none'; Codehighlighter1_390_472_Open_Text.style.display='none'; Codehighlighter1_390_472_Closed_Image.style.display='inline'; Codehighlighter1_390_472_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_390_472_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_390_472_Closed_Text.style.display='none'; Codehighlighter1_390_472_Open_Image.style.display='inline'; Codehighlighter1_390_472_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_390_472_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_390_472_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">false</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;m[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;b()<br><img id=Codehighlighter1_493_679_Open_Image onclick="this.style.display='none'; Codehighlighter1_493_679_Open_Text.style.display='none'; Codehighlighter1_493_679_Closed_Image.style.display='inline'; Codehighlighter1_493_679_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_493_679_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_493_679_Closed_Text.style.display='none'; Codehighlighter1_493_679_Open_Image.style.display='inline'; Codehighlighter1_493_679_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_493_679_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_493_679_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;document.getElementsByName('test[]');<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;l&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m.length;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">for</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;l;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)<br><img id=Codehighlighter1_593_676_Open_Image onclick="this.style.display='none'; Codehighlighter1_593_676_Open_Text.style.display='none'; Codehighlighter1_593_676_Closed_Image.style.display='inline'; Codehighlighter1_593_676_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_593_676_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_593_676_Closed_Text.style.display='none'; Codehighlighter1_593_676_Open_Image.style.display='inline'; Codehighlighter1_593_676_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_593_676_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_593_676_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">false</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;m[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;c()<br><img id=Codehighlighter1_697_884_Open_Image onclick="this.style.display='none'; Codehighlighter1_697_884_Open_Text.style.display='none'; Codehighlighter1_697_884_Closed_Image.style.display='inline'; Codehighlighter1_697_884_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_697_884_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_697_884_Closed_Text.style.display='none'; Codehighlighter1_697_884_Open_Image.style.display='inline'; Codehighlighter1_697_884_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_697_884_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_697_884_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(ca.length&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)<br><img id=Codehighlighter1_723_744_Open_Image onclick="this.style.display='none'; Codehighlighter1_723_744_Open_Text.style.display='none'; Codehighlighter1_723_744_Closed_Image.style.display='inline'; Codehighlighter1_723_744_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_723_744_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_723_744_Closed_Text.style.display='none'; Codehighlighter1_723_744_Open_Image.style.display='inline'; Codehighlighter1_723_744_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_723_744_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_723_744_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ca&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;cache();<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cl&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;ca.length;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">for</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;cl;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)<br><img id=Codehighlighter1_795_881_Open_Image onclick="this.style.display='none'; Codehighlighter1_795_881_Open_Text.style.display='none'; Codehighlighter1_795_881_Closed_Image.style.display='inline'; Codehighlighter1_795_881_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_795_881_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_795_881_Closed_Text.style.display='none'; Codehighlighter1_795_881_Open_Image.style.display='inline'; Codehighlighter1_795_881_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_795_881_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_795_881_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ca[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;ca[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">false</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;ca[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;cache()<br><img id=Codehighlighter1_906_1076_Open_Image onclick="this.style.display='none'; Codehighlighter1_906_1076_Open_Text.style.display='none'; Codehighlighter1_906_1076_Closed_Image.style.display='inline'; Codehighlighter1_906_1076_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_906_1076_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_906_1076_Closed_Text.style.display='none'; Codehighlighter1_906_1076_Open_Image.style.display='inline'; Codehighlighter1_906_1076_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_906_1076_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_906_1076_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;document.getElementsByName('test[]');<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;cache&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">new</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;Array();<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;l&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m.length;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">for</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;l;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)<br><img id=Codehighlighter1_1033_1057_Open_Image onclick="this.style.display='none'; Codehighlighter1_1033_1057_Open_Text.style.display='none'; Codehighlighter1_1033_1057_Closed_Image.style.display='inline'; Codehighlighter1_1033_1057_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1033_1057_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1033_1057_Closed_Text.style.display='none'; Codehighlighter1_1033_1057_Open_Image.style.display='inline'; Codehighlighter1_1033_1057_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1033_1057_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1033_1057_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cache[i]&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;m[i];<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">return</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;cache;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">--&gt;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span></div>
黑黑，至于那个input type="checkbox"的，你们就尽量复制吧，尽量不要超过1W，否则。。别怪我没有提醒你，当然了，也不需要把浏览器关掉，跑到外面抽根烟再回来就行了。<br><br>所以，我们要切实的记住，反正数组有长度的，坚决不能放在循环里面，而是先将这个长度取出来当成变量。PHP里也一样，循环数组的时候，先count数组的长度比较好。<br>当然了，我第三个采用了缓存，速度也是非常快的，比长度取好后再进行计算更快，因为连一次都不用取了（当然，除了第一次），全部扔给客户端了。<br><br>上面的例子还是比较方便的，因为，checkbox的 name值都一样，如果不一样怎么办？？？<br>只能这样<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_31_363_Open_Image onclick="this.style.display='none'; Codehighlighter1_31_363_Open_Text.style.display='none'; Codehighlighter1_31_363_Closed_Image.style.display='inline'; Codehighlighter1_31_363_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_31_363_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_31_363_Closed_Text.style.display='none'; Codehighlighter1_31_363_Open_Image.style.display='inline'; Codehighlighter1_31_363_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">language</span><span style="COLOR: #0000ff">="JavaScript"</span><span style="COLOR: #0000ff">&gt;</span><span id=Codehighlighter1_31_363_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_31_363_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;!--</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;check()<br><img id=Codehighlighter1_57_354_Open_Image onclick="this.style.display='none'; Codehighlighter1_57_354_Open_Text.style.display='none'; Codehighlighter1_57_354_Closed_Image.style.display='inline'; Codehighlighter1_57_354_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_57_354_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_354_Closed_Text.style.display='none'; Codehighlighter1_57_354_Open_Image.style.display='inline'; Codehighlighter1_57_354_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_57_354_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_57_354_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;inputs&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;document.getElementsByTagName('input');<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;inputsLen&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;inputs.length;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">for</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;i&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;&nbsp;i&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;inputsLen&nbsp;;&nbsp;i</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;)<br><img id=Codehighlighter1_189_351_Open_Image onclick="this.style.display='none'; Codehighlighter1_189_351_Open_Text.style.display='none'; Codehighlighter1_189_351_Closed_Image.style.display='inline'; Codehighlighter1_189_351_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_189_351_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_189_351_Closed_Text.style.display='none'; Codehighlighter1_189_351_Open_Image.style.display='inline'; Codehighlighter1_189_351_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_189_351_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_189_351_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(inputs[i].type.toLowerCase()&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;'checkbox')<br><img id=Codehighlighter1_245_347_Open_Image onclick="this.style.display='none'; Codehighlighter1_245_347_Open_Text.style.display='none'; Codehighlighter1_245_347_Closed_Image.style.display='inline'; Codehighlighter1_245_347_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_245_347_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_245_347_Closed_Text.style.display='none'; Codehighlighter1_245_347_Open_Image.style.display='inline'; Codehighlighter1_245_347_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_245_347_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_245_347_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inputs[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;inputs[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">false</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;inputs[i].checked&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">--&gt;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
缓存方法同上，这里就不多讨论了<br><br><br>请求加精&#8230;&#8230;唉。没地方加精。<img src ="http://www.cnitblog.com/neatstudio/aggbug/35006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-10-17 17:44 <a href="http://www.cnitblog.com/neatstudio/archive/2007/10/17/35006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于PHP正则的取反和逻辑思想的问题</title><link>http://www.cnitblog.com/neatstudio/archive/2007/10/09/34596.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Tue, 09 Oct 2007 09:01:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/10/09/34596.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/34596.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/10/09/34596.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/34596.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/34596.html</trackback:ping><description><![CDATA[<p>众所周知，^这个符合在正则里非常有用，首先它代表了行首匹配，比如/^abc/，就代表了必须是abc开头，同样，它也是一个取反的标记。<br><br>何为取反？就说刚才吧^abc是以abc开头，那么取反的意思就是不以abc三个字母的开头。<br><br>正常情况下，这些都可以运用，不会有什么错误。<br><br>再举个例子：我要判断字符串是否有特殊字符，怎么办？<br>正常情况下，我会这样preg_match("/[_-~!@#$%^]+/",$string) ，当然特殊字符不止这么一些，只是举个简单的例子。<br>如果我的$string = 'abcdefg--hijklmn'，那么，我这样的匹配肯定是返回1的，因为有&#8220;-&#8221;被我匹配了。<br>现在反过来讲，如果我不想匹配这些特殊字符怎么办？<br>首先想到的就是取反，于是我preg_match("/[^-~!@#$%^]/",$string)，再匹配一下，结果还是返回1。<br>为啥呢？<br>起初想半天就没想明白，为什么我明明取反了却匹配仍然成功呢？<br>仔细思索了好久才明白，我取反之后，其实我的match的内容就变成了：与不是特殊字符匹配，那么我的string里面几乎全都不是特殊字符，当然就匹配成功了。<br>所以，对于这种情况，还是先判断是否有特殊字符，然后再根据返回值再判断是否没有特殊字符吧。（有点象绕口令了）。</p><img src ="http://www.cnitblog.com/neatstudio/aggbug/34596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-10-09 17:01 <a href="http://www.cnitblog.com/neatstudio/archive/2007/10/09/34596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FOR IIS6 的 fastCGI也推出了</title><link>http://www.cnitblog.com/neatstudio/archive/2007/09/29/34170.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Sat, 29 Sep 2007 02:13:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/09/29/34170.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/34170.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/09/29/34170.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/34170.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/34170.html</trackback:ping><description><![CDATA[微软提升PHP在IIS下的性能<br><br>
<p><span style="FONT-WEIGHT: bold">微软已经和PHP社区共同努力了一年之久,他们终于研发出能让IIS更快地解析PHP的方法,用户们甚至不需要做基准测试就可以明显感觉到PHP解析速度加快.</span><br style="FONT-WEIGHT: bold"><span style="FONT-WEIGHT: bold">早在2006年,微软就和Zend等厂商一起研发Windows Server下的优化工作,IIS产品组已经公布了IIS6和7的FastCGI扩展,它能让PHP执行效率更高.</span><br>PHP一直以来是IIS的尴尬,用PHP扩展的速度跟不上其它服务端(甚至还有一些致命问题例如在某内存地址报错),而PHP又比ASP.net普及得多,因此微软需要在IIS+PHP上突破市场.<br><br></p>
<p>微软在Go Live发行版本上提供了Microsoft FastCGI Extension for IIS 5.1/6.0,目前可以免费下载,使用IIS6和5.1的您不妨在您的测试环境上试一下,没准会有惊喜哦! <br><br><img alt="" src="http://www.cnbeta.com/articles/pic/down.gif"><strong>下载:</strong><a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;g=6&amp;i=1521" target=_blank>FastCGI Extension for IIS6.0 and IIS5.1 - Go Live</a><br><br>-------------------------------------------------------------------------------<br>以上转自CNBETA，IIS下的PHP性能提高了，在WIN下面几乎 就可以放弃APACHE了，APACHE效率实在是低啊。。N个人做测试做下来都这么说，只是在WIN下面用APACHE，可以让开发人员写的代码容易测试，容易移植。<br>毕竟，IIS和APACHE还是有一些变量和函数不一样的。HOHO<br>装了之后，没有测试成功，不知道有谁成功了</p><img src ="http://www.cnitblog.com/neatstudio/aggbug/34170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-09-29 10:13 <a href="http://www.cnitblog.com/neatstudio/archive/2007/09/29/34170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为文件名添加诸如_thumb这样的标记</title><link>http://www.cnitblog.com/neatstudio/archive/2007/09/06/33033.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Thu, 06 Sep 2007 01:33:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/09/06/33033.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/33033.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/09/06/33033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/33033.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/33033.html</trackback:ping><description><![CDATA[<p>　　程序中经常会遇到这种情况，当你为图片生成缩略图时，往往需要保留原来的名字，而在其中插个thumb之类的字符，例如：原文件为test.jpg，生成缩略图的文件往往是test.thumb.jpg或者test_thumb.jpg这样。怎么样往里面插这样的字符呢？<br>　　插入这样的字符有几种方法：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$orig_filename</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">test.jpg</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$exp_str</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">_thumb</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">first&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$file_ext</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008080">strRchr</span><span style="COLOR: #000000">(&nbsp;</span><span style="COLOR: #800080">$orig_filename</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$fst_file</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008080">preg_replace</span><span style="COLOR: #000000">(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">.</span><span style="COLOR: #800080">$file_ext</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)$/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$exp_str</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$file_ext</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$orig_filename</span><span style="COLOR: #000000">&nbsp;&nbsp;);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">second</span><span style="COLOR: #008000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$orig_info</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008080">pathinfo</span><span style="COLOR: #000000">(&nbsp;</span><span style="COLOR: #800080">$orig_filename</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$scd_file</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$orig_info</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">filename</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$exp_str</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$orig_info</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">];<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">第三种用substr的我就不写了。。懒啊<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
呵呵，就写这个多了。。。<img src ="http://www.cnitblog.com/neatstudio/aggbug/33033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-09-06 09:33 <a href="http://www.cnitblog.com/neatstudio/archive/2007/09/06/33033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache rewrite 详解</title><link>http://www.cnitblog.com/neatstudio/archive/2007/07/31/30974.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Tue, 31 Jul 2007 04:02:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/07/31/30974.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/30974.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/07/31/30974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/30974.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/30974.html</trackback:ping><description><![CDATA[<a href="http://www.infomall.cn/cgi-bin/mallnohead/20040514/http://hedong.3322.org/archives/000349.html">http://www.infomall.cn/cgi-bin/mallnohead/20040514/http://hedong.3322.org/archives/000349.html</a><br><br>收藏：<br>
<h1><a accessKey=1 href="http://www.infomall.cn/cgi-bin/mallgate/20040514/http://hedong.3322.org/"><font size=7>竹笋炒肉</font></a></h1>
<span class=description>东坡有诗&#8220;无竹则俗，无肉则廋；不俗不廋，竹笋炒肉&#8221;。：）<br>欢迎光临的每一位朋友。这是我的第一个BLOG，用来记录我的所学、所做、所思、所想、所经历、所感受。</span> <br><br>
<h3 class=title id=startcontent>Apache的Mod_rewrite学习（五）</h3>
<p>　　今天主要列出一些例子。由于有些例子是针对特殊路径或特别情况的，列出供大家在思路上参考。因为它们就是些例子。</p>
<a name=more></a>
<table border=1>
    <tbody>
        <tr>
            <td>目标</td>
            <td>重写设置</td>
            <td>说明</td>
        </tr>
        <tr>
            <td>规范化URL</td>
            <td>RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R] </td>
            <td>将/~user重写为/u/user的形式</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]</td>
            <td>将/u/user末尾漏掉的/补上</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>规范化HostName</td>
            <td>RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]</td>
            <td>域名不合格</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_HOST} !^$</td>
            <td>不空</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{SERVER_PORT} !^80$</td>
            <td>不是80端口</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]</td>
            <td>重写</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_HOST} !^$</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>URL根目录转移</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/$ /e/www/ [R]</td>
            <td>从/移到/e/www/</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>末尾目录补斜线</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td>（目录范围内）</td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo$ foo/ [R]</td>
            <td>/~quux/foo是一个目录，补/</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{REQUEST_FILENAME} -d</td>
            <td>如果请文件名是个目录</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.+[^/])$ $1/ [R]</td>
            <td>URL末尾不是斜线时补上</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>Web集群</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap user-to-host txt:/path/to/map.user-to-host</td>
            <td>用户－服务器映射</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap group-to-host txt:/path/to/map.group-to-host</td>
            <td>组－服务器映射</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap entity-to-host txt:/path/to/map.entity-to-host</td>
            <td>实体－服务器映射</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/u/([^/]+)/?(.*) http://${user-to-host:$1|server0}/u/$1/$2</td>
            <td>用户均衡</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/g/([^/]+)/?(.*) http://${group-to-host:$1|server0}/g/$1/$2</td>
            <td>组均衡</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/e/([^/]+)/?(.*) http://${entity-to-host:$1|server0}/e/$1/$2</td>
            <td>实体均衡</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/([uge])/([^/]+)/?$ /$1/$2/.www/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/([uge])/([^/]+)/([^.]+.+) /$1/$2/.www/$3\ </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>URL根目录搬迁</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/~(.+) http://newserver/~$1 [R,L] </td>
            <td>到其它服务器</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>所用户名首字母分</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/.www$3 </td>
            <td>内一层括号为$2</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>NCSA imagemap移</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td>植为mod_imap</td>
            <td>RewriteRule ^/cgi-bin/imagemap(.*) $1 [PT] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>多目录查找资源</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td># first try to find it in custom/...</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond /your/docroot/dir1/%{REQUEST_FILENAME} -f</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.+) /your/docroot/dir1/$1 [L]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td># second try to find it in pub/...</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond /your/docroot/dir2/%{REQUEST_FILENAME} -f</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.+) /your/docroot/dir2/$1 [L]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td># else go on for other Alias or ScriptAlias directives,</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.+) - [PT] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>据URL设置环境变量</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.*)/S=([^/]+)/(.*) $1/$3 [E=STATUS:$2] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>虚拟主机</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_HOST} ^www\.[^.]+\.host\.com$</td>
            <td>基于用户名</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.+) %{HTTP_HOST}$1 [C]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^www\.([^.]+)\.host\.com(.*) /home/$1$2 </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>内外人有别</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{REMOTE_HOST} !^.+\.ourdomain\.com$</td>
            <td>基于远程主机</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(/~.+) http://www.somewhere.com/$1 [R,L] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>错误重定向</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f</td>
            <td>不是regular文件</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.+) http://webserverB.dom/$1 </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>程序处理特殊协议</td>
            <td>RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \</td>
            <td>Xredirect协议</td>
        </tr>
        <tr>
            <td></td>
            <td>[T=application/x-httpd-cgi,L] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>最近镜像下载</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap multiplex txt:/path/to/map.cxan</td>
            <td>顶级域名与最近ftp服务器映射</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/CxAN/(.*) %{REMOTE_HOST}::$1 [C]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^.+\.([a-zA-Z]+)::(.*)$ ${multiplex:$1|ftp.default.dom}$2 [R,L] </td>
            <td>据顶级域名不同提供不同的FTP服务器</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>基于时间重写</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{TIME_HOUR}%{TIME_MIN} &gt;0700</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{TIME_HOUR}%{TIME_MIN} &lt;1900</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ foo.day.html</td>
            <td>白天为早晚7点间</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ foo.night.html </td>
            <td>其余为夜间</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>向前兼容扩展名</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td># parse out basename, but remember the fact</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.*)\.html$ $1 [C,E=WasHTML:yes]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td># rewrite to document.phtml if exists</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{REQUEST_FILENAME}.phtml -f</td>
            <td>如果存在$1.phtml则重写</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.*)$ $1.phtml [S=1]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td># else reverse the previous basename cutout</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{ENV:WasHTML} ^yes$</td>
            <td>如果不存在$1.phtml，则保持不变</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^(.*)$ $1.html </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>文件改名（目录级）</td>
            <td>RewriteEngine on</td>
            <td>内部重写</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ bar.html </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteEngine on</td>
            <td>重定向由客户端再次提交</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ bar.html [R] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>据浏览器类型重写</td>
            <td>RewriteCond %{HTTP_USER_AGENT} ^Mozilla/3.*</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ foo.NS.html [L]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_USER_AGENT} ^Lynx/.* [OR]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12].*</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ foo.20.html [L]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ foo.32.html [L] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>动态镜像远程资源</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^hotsheet/(.*)$ http://www.tstimpreso.com/hotsheet/$1 [P]</td>
            <td>利用了代理模块</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^usa-news\.html$ http://www.quux-corp.com/news/index.html [P]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>反向动态镜像</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond /mirror/of/remotesite/$1 -U </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1 </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>负载均衡</td>
            <td>RewriteEngine on</td>
            <td>利用代理实现round-robin效果</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap lb prg:/path/to/lb.pl</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/(.+)$ ${lb:$1} [P,L]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>#!/path/to/perl</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$| = 1;</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$name = "www"; # the hostname base</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$first = 1; # the first server (not 0 here, because 0 is myself) </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$last = 5; # the last server in the round-robin</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$domain = "foo.dom"; # the domainname</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$cnt = 0;</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>while (&lt;STDIN&gt;) {</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$cnt = (($cnt+1) % ($last+1-$first));</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>print "http://$server/$_";</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>}</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>##EOF##</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>静态页面变脚本</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteBase /~quux/</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^foo\.html$ foo.cgi [T=application/x-httpd-cgi] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>阻击机器人</td>
            <td>RewriteCond %{HTTP_USER_AGENT} ^NameOfBadRobot.* </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.[8-9]$</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/~quux/foo/arc/.+ - [F] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>阻止盗连你的图片</td>
            <td>RewriteCond %{HTTP_REFERER} !^$ </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]</td>
            <td>自己的连接可不能被阻止</td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule .*\.gif$ - [F]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_REFERER} !^$ </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^inlined-in-foo\.gif$ - [F]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>拒绝某些主机访问</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap hosts-deny txt:/path/to/hosts.deny</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/.* - [F] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>用户授权</td>
            <td>RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend1@client1.quux-corp\.com$ </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend2@client2.quux-corp\.com$ </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend3@client3.quux-corp\.com$ </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/~quux/only-for-friends/ - [F] </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>外部重写程序模板</td>
            <td>RewriteEngine on</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteMap quux-map prg:/path/to/map.quux.pl</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/~quux/(.*)$ /~quux/${quux-map:$1}</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>#!/path/to/perl</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>$| = 1;</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>while (&lt;&gt;) {</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>s|^foo/|bar/|;</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>print $_;</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>}</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>搜索引擎友好</td>
            <td>RewriteRule ^/products$ /content.php </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/products/([0-9]+)$ /content.php?id=$1 </td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>RewriteRule ^/products/([0-9]+),([ad]*),([0-9]{0,3}),([0-9]*),([0-9]*$) /marso/content.php?id=$1&amp;sort=$2&amp;order=$3&amp;start=$4</td>
            <td></td>
        </tr>
    </tbody>
</table>
<p>参考文献：<br>URL Rewriting Guide<br>http://httpd.apache.org/docs/misc/rewriteguide.html</p>
<p>mod_rewrite: A Beginner's Guide to URL Rewriting<br>http://www.sitepoint.com/article/910</p><img src ="http://www.cnitblog.com/neatstudio/aggbug/30974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-07-31 12:02 <a href="http://www.cnitblog.com/neatstudio/archive/2007/07/31/30974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DBF与MYSQL互转（转自村子http://www.phpx.com/happy/archiver/tid-63834.html）</title><link>http://www.cnitblog.com/neatstudio/archive/2007/07/26/30715.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Thu, 26 Jul 2007 03:01:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/07/26/30715.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/30715.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/07/26/30715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/30715.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/30715.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;?$dbftomysql=new&nbsp;convertdata;$dbftomysql-&gt;dbf_to_mysql("sourcedbf","jwcnewstudentlogin","sourcedbf.dbf","test");class&nbsp;convertdata{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;funct...&nbsp;&nbsp;<a href='http://www.cnitblog.com/neatstudio/archive/2007/07/26/30715.html'>阅读全文</a><img src ="http://www.cnitblog.com/neatstudio/aggbug/30715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-07-26 11:01 <a href="http://www.cnitblog.com/neatstudio/archive/2007/07/26/30715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL语句导入导出大全(转)</title><link>http://www.cnitblog.com/neatstudio/archive/2007/07/26/30702.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Thu, 26 Jul 2007 02:49:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/07/26/30702.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/30702.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/07/26/30702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/30702.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/30702.html</trackback:ping><description><![CDATA[备份资料：Copy from ---&gt; http://php.mydict.com/ziliao/7/2006_05/SQLYuJuDaoRuDaoChuDaQuan3016_1.html&nbsp;<br>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>/******* 导出到excel<br>EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/*********** 导入Excel<br>SELECT * <br>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/*动态文件名<br>declare @fn varchar(20),@s varchar(1000)<br>set @fn = 'c:\test.xls'<br>set @s ='''Microsoft.Jet.OLEDB.4.0'',<br>''Data Source="<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#102;&#110;&#32;&#39;&#38;&#97;&#109;&#112;&#59;&#113;&#117;&#111;&#116;&#59;&#59;&#85;&#115;&#101;&#114;"><u><font color=#0000ff>' @fn '";User</font></u></a> ID=Admin;Password=;Extended properties=Excel 5.0'''<br>set @s = 'SELECT * FROM OpenDataSource (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#115;&#32;&#39;&#41;&#46;&#46;&#46;&#115;&#104;&#101;&#101;&#116;&#49;&#36;&#39;"><u><font color=#0000ff>' @s ')...sheet1$'</font></u></a><br>exec(@s)<br>*/</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255)) '　' 转换后的别名<br>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/********************** EXCEL导到远程SQL<br>insert OPENDATASOURCE(<br>'SQLOLEDB',<br>'Data Source=远程ip;User ID=sa;Password=密码'<br>).库名.dbo.表名 (列名1,列名2)<br>SELECT 列名1,列名2<br>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>/** 导入文本文件<br>EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/** 导出文本文件<br>EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'<br>或<br>EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">导出到TXT文本，用逗号分开<br>exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>BULK INSERT 库名..表名<br>FROM 'c:\test.txt'<br>WITH (<br>FIELDTERMINATOR = ';',<br>ROWTERMINATOR = '\n'<br>)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>--/* dBase IV文件<br>select * from <br>OPENROWSET('MICROSOFT.JET.OLEDB.4.0'<br>,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')<br>--*/</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">--/* dBase III文件<br>select * from <br>OPENROWSET('MICROSOFT.JET.OLEDB.4.0'<br>,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')<br>--*/</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">--/* FoxPro 数据库<br>select * from openrowset('MSDASQL',<br>'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',<br>'select * from [aa.DBF]')<br>--*/</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/**************导入DBF文件****************/<br>select * from openrowset('MSDASQL',<br>'Driver=Microsoft Visual FoxPro Driver;<br>SourceDB=e:\VFP98\data;<br>SourceType=DBF',<br>'select * from customer where country != "USA" order by country')<br>go<br>/***************** 导出到DBF ***************/<br>如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">insert into openrowset('MSDASQL',<br>'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',<br>'select * from [aa.DBF]')<br>select * from 表</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">说明:<br>SourceDB=c:\ 指定foxpro表所在的文件夹<br>aa.DBF 指定foxpro表的文件名.</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"></p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>/*************导出到Access********************/<br>insert into openrowset('Microsoft.Jet.OLEDB.4.0', <br>'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/*************导入Access********************/<br>insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', <br>'x:\A.mdb';'admin';'',A表)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">文件名为参数<br>declare @fname varchar(20)<br>set @fname = 'd:\test.mdb'<br>exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',<br><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#39;&#39;&#32;&#64;&#102;&#110;&#97;&#109;&#101;&#32;&#39;&#39;&#39;&#59;&#39;&#39;&#97;&#100;&#109;&#105;&#110;&#39;&#39;&#59;&#39;&#39;&#39;&#39;"><u><font color=#0000ff>''' @fname ''';''admin'';''''</font></u></a>, topics) as a ')</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">SELECT * <br>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">********************* 导入 xml　文件</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">DECLARE @idoc int<br>DECLARE @doc varchar(1000)<br>--sample XML document<br>SET @doc ='<br>&lt;root&gt;<br>&lt;Customer cid= "C1" name="Janine" city="Issaquah"&gt;<br>&lt;Order oid="O1" date="1/20/1996" amount="3.5" /&gt;<br>&lt;Order oid="O2" date="4/30/1997" amount="13.4"&gt;Customer was very satisfied<br>&lt;/Order&gt;<br>&lt;/Customer&gt;<br>&lt;Customer cid="C2" name="Ursula" city="Oelde" &gt;<br>&lt;Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue <br>white red"&gt;<br>&lt;Urgency&gt;Important&lt;/Urgency&gt;<br>Happy Customer.<br>&lt;/Order&gt;<br>&lt;Order oid="O4" date="1/20/1996" amount="10000"/&gt;<br>&lt;/Customer&gt;<br>&lt;/root&gt;<br>'<br>-- Create an internal representation of the XML document.<br>EXEC sp_xml_preparedocument @idoc OUTPUT, @doc</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">-- Execute a SELECT statement using OPENXML rowset provider.<br>SELECT *<br>FROM OPENXML (@idoc, '/root/Customer/Order', 1)<br>WITH (oid char(5), <br>amount float, <br>comment ntext 'text()')<br>EXEC sp_xml_removedocument @idoc</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"></p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">???????</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">/**********************Excel导到Txt****************************************/<br>想用<br>select * into opendatasource(...) from opendatasource(...)<br>实现将一个Excel文件内容导入到一个文本文件</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">假设Excel中有两列，第一列为姓名，第二列为很行帐号(16位)<br>且银行帐号导出到文本文件后分两部分，前8位和后8位分开。</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>邹健：<br>如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2<br>然后就可以用下面的语句进行插入<br>注意文件名和目录根据你的实际情况进行修改.</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">insert into<br>opendatasource('MICROSOFT.JET.OLEDB.4.0'<br>,'Text;HDR=Yes;DATABASE=C:\'<br>)...[aa#txt]<br>--,aa#txt)<br>--*/<br>select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) <br>from <br>opendatasource('MICROSOFT.JET.OLEDB.4.0'<br>,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'<br>--,Sheet1$)<br>)...[Sheet1$]</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"></p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">如果你想直接插入并生成文本文件,就要用bcp</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">declare @sql varchar(8000),@tbname varchar(50)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">--首先将excel表内容导入到一个全局临时表<br>select @tbname='[##temp' cast(newid() as varchar(40)) ']'<br>,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) <br>into <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#116;&#98;&#110;&#97;&#109;&#101;&#32;&#39;"><u><font color=#0000ff>' @tbname '</font></u></a> from <br>opendatasource(''MICROSOFT.JET.OLEDB.4.0''<br>,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls''<br>)...[Sheet1$]'<br>exec(@sql)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">--然后用bcp从全局临时表导出到文本文件<br>set @sql='bcp "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#116;&#98;&#110;&#97;&#109;&#101;&#32;&#39;"><u><font color=#0000ff>' @tbname '</font></u></a>" out "c:\aa.txt" /S"(local)" /P"" /c'<br>exec master..xp_cmdshell @sql</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">--删除临时表<br>exec('drop table <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#116;&#98;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @tbname</font></u></a>)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>/********************导整个数据库*********************************************/</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">用bcp实现的存储过程</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>/*<br>实现数据导入/导出的存储过程<br>根据不同的参数,可以实现导入/导出整个数据库/单个表<br>调用示例:<br>--导出调用示例<br>----导出单个表<br>exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1<br>----导出整个数据库<br>exec file2table 'zj','','','xzkh_sa','C:\docman',1</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">--导入调用示例<br>----导入单个表<br>exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0<br>----导入整个数据库<br>exec file2table 'zj','','','xzkh_sa','C:\docman',0</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">*/<br>if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)<br>drop procedure File2Table<br>go<br>create procedure File2Table<br>@servername varchar(200) --服务器名<br>,@username varchar(200) --用户名,如果用NT验证方式,则为空''<br>,@password varchar(200) --密码<br>,@tbname varchar(500) --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表<br>,@filename varchar(1000) --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt<br>,@isout bit --1为导出,0为导入<br>as<br>declare @sql varchar(8000)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表<br>begin<br>set @sql='bcp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#116;&#98;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @tbname</font></u></a><br>case when @isout=1 then ' out ' else ' in ' end<br>' "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#102;&#105;&#108;&#101;&#110;&#97;&#109;&#101;&#32;&#39;"><u><font color=#0000ff>' @filename '</font></u></a>" /w'<br>' /S <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#115;&#101;&#114;&#118;&#101;&#114;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @servername</font></u></a><br>case when isnull(@username,'')='' then '' else ' /U <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#117;&#115;&#101;&#114;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @username</font></u></a> end<br>' /P ' isnull(@password,'')<br>exec master..xp_cmdshell @sql<br>end<br>else<br>begin --导出整个数据库,定义游标,取出所有的用户表<br>declare @m_tbname varchar(250)<br>if right(@filename,1)&lt;&gt;'\' set @filename=@filename '\'</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">set @m_tbname='declare #tb cursor for select name from <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#116;&#98;&#110;&#97;&#109;&#101;&#32;&#39;&#46;&#46;&#115;&#121;&#115;&#111;&#98;&#106;&#101;&#99;&#116;&#115;"><u><font color=#0000ff>' @tbname '..sysobjects</font></u></a> where xtype=''U'''<br>exec(@m_tbname)<br>open #tb<br>fetch next from #tb into @m_tbname<br>while @@fetch_status=0<br>begin<br>set @sql='bcp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#116;&#98;&#110;&#97;&#109;&#101;&#32;&#39;&#46;&#46;&#39;&#32;&#64;&#109;&#95;&#116;&#98;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @tbname '..' @m_tbname</font></u></a><br>case when @isout=1 then ' out ' else ' in ' end<br>' "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#102;&#105;&#108;&#101;&#110;&#97;&#109;&#101;&#32;&#64;&#109;&#95;&#116;&#98;&#110;&#97;&#109;&#101;&#32;&#39;&#46;&#116;&#120;&#116;"><u><font color=#0000ff>' @filename @m_tbname '.txt</font></u></a> " /w'<br>' /S <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#115;&#101;&#114;&#118;&#101;&#114;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @servername</font></u></a><br>case when isnull(@username,'')='' then '' else ' /U <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#32;&#64;&#117;&#115;&#101;&#114;&#110;&#97;&#109;&#101;"><u><font color=#0000ff>' @username</font></u></a> end<br>' /P ' isnull(@password,'')<br>exec master..xp_cmdshell @sql<br>fetch next from #tb into @m_tbname<br>end<br>close #tb<br>deallocate #tb <br>end<br>go</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br>/************* Oracle **************/<br>EXEC sp_addlinkedserver 'OracleSvr', <br>'Oracle 7.3', <br>'MSDAORA', <br>'ORCLDB'<br>GO</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">delete from openquery(mailser,'select * from yulin')</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">select * from openquery(mailser,'select * from yulin')</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">insert into openquery(mailser,'select disorder,catago from yulin')values(333,777)</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"></p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">补充：</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">对于用bcp导出,是没有字段名的.</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">用openrowset导出,需要事先建好表.</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana">用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入</p>
<p style="FONT-SIZE: 12pt; FONT-FAMILY: Verdana"><br><br></p><img src ="http://www.cnitblog.com/neatstudio/aggbug/30702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-07-26 10:49 <a href="http://www.cnitblog.com/neatstudio/archive/2007/07/26/30702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库设计时由于字符集的关系而应当注意的几个小点</title><link>http://www.cnitblog.com/neatstudio/archive/2007/07/18/30212.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Wed, 18 Jul 2007 13:53:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/07/18/30212.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/30212.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/07/18/30212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/30212.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/30212.html</trackback:ping><description><![CDATA[1、如果字段中有中文，存储方式为GBK时，字节长度为预算的*2，如果存储方式为UTF8,字节长度为预算的*3；<br>&nbsp;&nbsp;&nbsp; 例如：姓名字段，假设名字最长为四个字，如上官飞云，存储方式为GBK时，应该是char(8);如果存储方式为UTF8时，应该是char(12);<br><br>2、4.0、4.1和5.0的varchar长度不一样，4.0、4.1时都是255长度，而到了5.0变成了65535,为了兼容性，这些一定要考虑到。<br><br>3、索引字段最好是纯英文的，这样select的时候即使是模糊查询速度也会快很多<br><br>4、能用char的尽量不要用varchar，虽然varchar比较节约数据库，但char的速度更快<br><br>5、知道字段可能会存在的值时，可以考虑用enum来存储，虽然可能会与其他类型的数据库不兼容，但仅仅在mysql下面使用的话，还是可以加快速度的，比如，学历字段，可以enum('小学','初中','高中','中专','大专','本科','硕士','博士','博士后','其他');而不需要再单独建个表来存储，不过。这样的话，缺点是冗余数据可能会多一点<br><br>其他的由您为我补上，谢谢&#8230;&#8230;<img src ="http://www.cnitblog.com/neatstudio/aggbug/30212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-07-18 21:53 <a href="http://www.cnitblog.com/neatstudio/archive/2007/07/18/30212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PHP4的时代即将结束……</title><link>http://www.cnitblog.com/neatstudio/archive/2007/07/13/29811.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Fri, 13 Jul 2007 09:15:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/07/13/29811.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/29811.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/07/13/29811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/29811.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/29811.html</trackback:ping><description><![CDATA[<div class=newsItem><a id=2007-07-13-1 name=2007-07-13-1>
<h1>PHP 4 end of life announcement</h1>
</a>
<div><span class=newsdate>[12-Jul-2007]</span>
<p>Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable &amp; production-ready and as PHP 6 is on the way, PHP 4 will be discontinued. </p>
<p>The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5. </p>
<p>For documentation on migration for PHP 4 to PHP 5, we would like to point you to our <a href="http://www.php.net/manual/en/migration5.php"><u><font color=#0000ff>migration guide</font></u></a>. There is additional information available in the <a href="http://www.php.net/manual/en/migration51.php"><u><font color=#0000ff>PHP 5.0 to PHP 5.1</font></u></a> and <a href="http://www.php.net/manual/en/migration52.php"><u><font color=#0000ff>PHP 5.1 to PHP 5.2</font></u></a> migration guides as well. </p>
</div>
</div>
如果还没有上PHP5的人，就等一下，干脆直接上PHP6了&#8230;&#8230;<img src ="http://www.cnitblog.com/neatstudio/aggbug/29811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-07-13 17:15 <a href="http://www.cnitblog.com/neatstudio/archive/2007/07/13/29811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何取得当前数据的上一条和下一条的ID</title><link>http://www.cnitblog.com/neatstudio/archive/2007/07/10/29713.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Tue, 10 Jul 2007 15:20:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/07/10/29713.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/29713.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/07/10/29713.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/29713.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/29713.html</trackback:ping><description><![CDATA[经常在新闻系统中显示：上一条，上一条，在网上找了很久也没有发现有什么特别好的解决方案。在看了几个人的解决方案后，写了如下的sql语句。也算是抛砖引玉吧。<br><br>　　SQL是这样的： SELECT max(id) FROM table WHERE id&nbsp;&lt; 当前ID UNION SELECT min(id) FROM table WHERE ID&gt;当前ID<br><br>　　可是某人告诉我。ＭＳＳＱＬ居然不支持union，于是我写了这么一条，因为我不知道MSSQL是否能执行，希望给大家一个帮忙。呵呵。<br>　　SQL：select top 3 id from table where id &lt; (select min(id) from table where id &gt; 当前ID) order by id desc <br><br>　　权当做个笔记。 （希望有人指正，我也好多记一点多学一点）<img src ="http://www.cnitblog.com/neatstudio/aggbug/29713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-07-10 23:20 <a href="http://www.cnitblog.com/neatstudio/archive/2007/07/10/29713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手动配置windows下面amp。。。</title><link>http://www.cnitblog.com/neatstudio/archive/2007/05/21/install_windows_apache_php_mysql.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Mon, 21 May 2007 06:30:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/05/21/install_windows_apache_php_mysql.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/27374.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/05/21/install_windows_apache_php_mysql.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/27374.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/27374.html</trackback:ping><description><![CDATA[<p>软件版本 <br>apache: apache_2.0.59-win32-x86-no_ssl.msi<br>php&nbsp;&nbsp;&nbsp;&nbsp; : php-5.2.2-Win32<br>mysql&nbsp; : mysql-noinstall-4.0.27-win32<br><br>具体的软件我就不提供下载了，自己去找吧。。。呵呵<br><br>本来自己装的时候，一直失败，在&nbsp;大米米 同志的指导下装的，才成功。。。以前一直是用集成包的，难得手工装一次，上一次手动安装已经是3年前的事情了。<br><br>步骤开始： 我的目录 一般是在 d:/usr/local/ 下面。<br>1、安装apache2，直接下一步下一步就结束了，安装好之后 apachemonitor 会自动启动，先关闭apache 。安装好的目录是：d:/usr/local/Apache2/<br>2、解压缩到 d:/usr/local/php目录下（如果怕偷懒，可以将几个DLL拷到c:/windows/system32目录下，当然也可以用apache的conf来LOAD）<br>3、修改 apache2/conf/httpd.conf，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为我默认的 WEB 目录在 local 目录下，为 public_html ，因此我搜索 d:/usr/local/Apache2/htdocs 替换成 d:/usr/local/public_html<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后添加以下代码：<br>&nbsp;&nbsp;&nbsp; # PHP的配置</p>
<p>PHPIniDir "d:/usr/local/php"</p>
<p>LoadFile d:/usr/local/php/php5ts.dll<br>LoadFile d:/usr/local/php/libmysql.dll<br>LoadFile d:/usr/local/php/libmcrypt.dll<br>LoadFile d:/usr/local/php/libmhash.dll<br>LoadFile d:/usr/local/php/libeay32.dll<br>LoadFile d:/usr/local/php/ssleay32.dll</p>
<p>LoadModule php5_module "d:/usr/local/php/php5apache2.dll"<br>AddType application/x-httpd-php .php</p>
<p>DirectoryIndex index.php index.html index.htm <br><br>注意：如果是php4那么就<br>LoadModule php4_module "d:/usr/local/php/php4apache2.dll"<br>php4apache2.dll 好象不在PHP的根目录下，好象在isapi目录下，切记拷到根目录下。<br>上面的loadFile 好象不在根目录下（实在没有PHP4了。自己配置一下吧）<br><br>4、修改 php.ini ，如果是本机测试，那么只需要改几处就行了。<br>把默认的 ;extension_dir = "./ext" 改为 extension_dir = "d:/usr/local/php/ext"<br>然后把一些扩展打开：<br>extension=php_mbstring.dll<br>extension=php_exif.dll<br>extension=php_curl.dll<br>extension=php_mhash.dll<br>extension=php_mcrypt.dll<br>extension=php_gd2.dll<br>extension=php_mysql.dll<br>extension=php_mysqli.dll<br>extension=php_pdo.dll<br>extension=php_pdo_mysql.dll<br><br>切记，php_mbstring.dll&nbsp; 要放在最前面，因为有部份DLL在加载的时候，要求先加载mbstring的，例如exif，当然具体开几个扩展，自己看自己的需求情况吧。<br>再然后，修改一下upload_max_filesize = 2M ,这个是默认的，如果有需要，可以改大一点，一般不要超过8M<br>再修改一下 session.save_path = "d:/usr/local/sessions" (前提是先建好这个目录)<br><br>5、解压缩mysql的压缩文件到 d:/usr/local/mysql目录，在目录下建一个bat文件，里面放上一句<br>copy my-huge.cnf my.ini<br>如果还有内容修改，可以参照网上的一些my.ini配置来进行修改<br>再到bin目录下建一个bat文件，名字是：installMysql.bat<br>内容为：<br>mysqld-nt --install mysql --default-file="d:/usr/local/mysql/my.ini"<br>net start mysql<br>这样的话，安装后的服务名为 mysql ,默认读取的文件是 my.ini ，可以避免将my.ini拷到C盘根目录下，方便下次重装系统后使用<br><br>6、现在再利用apache monitor打开apache，到public_html目录下建一个 phpinfo.php,内容为<br>&lt;?php<br>phpinfo();<br>?&gt;<br>到浏览器里看一下，是不是mysql,gd都加载好了？<br><br><br>7、如果你还需要zend的扩展，那么到我这里下载吧。。。(<a href="http://www.cnitblog.com/Files/neatstudio/Zend.rar">点击下载</a>)<br>步骤：先停掉apache，修改php.ini，在最后加上<br>[zend]<br>zend_extension_ts="d:/usr/local/zend/optimizer/ZendExtensionManager.dll"<br>zend_extension_manager.optimizer_ts="d:/usr/local/zend/optimizer/lib"<br>当然了，下载的压缩文件是解压到d:/usr/local/zend目录下（我提供的只支持php 5.2.x）如果你有特别需要，可以到zend的网站上下载，然后安装好之后，COPY 过来并卸载掉zend optimizer。<br></p><img src ="http://www.cnitblog.com/neatstudio/aggbug/27374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/neatstudio/" target="_blank">简单人生</a> 2007-05-21 14:30 <a href="http://www.cnitblog.com/neatstudio/archive/2007/05/21/install_windows_apache_php_mysql.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发网页程序的时候，JS经常报错该如何处理？</title><link>http://www.cnitblog.com/neatstudio/archive/2007/05/21/27366.html</link><dc:creator>简单人生</dc:creator><author>简单人生</author><pubDate>Mon, 21 May 2007 03:32:00 GMT</pubDate><guid>http://www.cnitblog.com/neatstudio/archive/2007/05/21/27366.html</guid><wfw:comment>http://www.cnitblog.com/neatstudio/comments/27366.html</wfw:comment><comments>http://www.cnitblog.com/neatstudio/archive/2007/05/21/27366.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/neatstudio/comments/commentRss/27366.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/neatstudio/services/trackbacks/27366.html</trackback:ping><description><![CDATA[<p>做网页的时候，JS一段没有写好的时候，老是会出错，弹出的窗口又难看，而且在IE里面，还死活找不到位置。。。因为IE的报错信息位置不准确，再加上，有时候一段网页是专门为IE写的，用FF或者OPERA就会报错，为避免报错信息弹窗，让客户体验更好，因此。。。找了一些资料后，发现以下解决方法比较好。<br><br>1、在代码前加入<br>&lt;script language="javascript"&gt;window.onerror = function(){return true;}&lt;/script&gt;<br>把这段代码放在你的head的JS引用前<br><br>2、在具体的代码前加入try catch<br>&lt;script language="javascript"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可能会出错的代码<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(e){}<br>&lt;/script&gt;</p>
<p><br>3、自己写个小函数替代(COPY 自网上)<br>document._error_messages = new Array();<br>var w;</p>
<p>function doError(msg,url,ln) {<br>&nbsp;var _error_obj = {msg : msg, url : url, ln : ln};<br>&nbsp;<br>&nbsp;document._error_messages[document._error_messages.length] = _error_obj;<br>&nbsp;<br>&nbsp;str = ""<br>&nbsp;str += "&lt;title&gt;Error Dialogue (WebFX)&lt;/title&gt;"<br>&nbsp;str += "&lt;script&gt;window.onload=new Function('showError()');"<br>&nbsp;str += 'var nr=0;'<br>&nbsp;str += 'function next() {'<br>&nbsp;str += '&nbsp;&nbsp; nr=Math.min(window.opener.document._error_messages.length-1,nr+1);'<br>&nbsp;str += '&nbsp;&nbsp; showError();'<br>&nbsp;str += '}'<br>&nbsp;str += 'function previous() {'<br>&nbsp;str += '&nbsp;&nbsp; nr=Math.max(0,nr-1);'<br>&nbsp;str += '&nbsp;&nbsp; showError();'<br>&nbsp;str += '}'<br>&nbsp;str += 'function showError() {'<br>&nbsp;str += '&nbsp;&nbsp; errorArray = window.opener.document._error_messages;'<br>&nbsp;str += '&nbsp;&nbsp; if (errorArray.length != 0 &amp;&amp; nr &gt;= 0 &amp;&amp; nr &lt; errorArray.length) {'<br>&nbsp;str += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url.innerText = errorArray[nr].url;'<br>&nbsp;str += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.innerText = errorArray[nr].msg;'<br>&nbsp;str += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ln.innerText = errorArray[nr].ln;'<br>&nbsp;str += '&nbsp;&nbsp; }'<br>&nbsp;str += '}&lt;/script&gt;'<br>&nbsp;str += "&lt;style&gt;"<br>&nbsp;str += "body {background: white; color: black; border: 10 solid navy; font-family: tahoma, arial, helvitica; font-size: 12px; margin: 0;}"<br>&nbsp;str += "p {font-family: tahoma, arial, helvitica; font-size: 12px; margin-left: 10px; margin-right: 10px;}"<br>&nbsp;str += "h1&nbsp;{font-family: arial black; font-style: italic; margin-bottom: -15; margin-left: 10; color:navy}"<br>&nbsp;str += "button {margin: 0; border: 1 solid #dddddd; background: #eeeeee; color: black; font-family: tahoma, arial; width: 100}"<br>&nbsp;str += "a {color: navy;}"<br>&nbsp;str += "a:hover {color: blue;}"<br>&nbsp;str += "&lt;/style&gt;"<br>&nbsp;str += '&lt;body scroll="no"&gt;'<br>&nbsp;str += "&lt;h1&gt;Oops!&lt;/h1&gt;"<br>&nbsp;str += '&lt;p&gt;An error ocurred in the file &lt;br&gt;&lt;strong id="url"&gt;&lt;/strong&gt;&lt;br&gt;This might prevent the page from working correctly.&lt;/p&gt;'<br>&nbsp;str += '&lt;p style="margin-bottom: 5;"&gt;Please report this to &lt;a href="/contact.html#emil"&gt;EAE&lt;/a&gt; or &lt;a href="/contact.html#erik"&gt;Erik&lt;/a&gt;&lt;/p&gt;'<br>&nbsp;str += '&lt;table style="width: 100%;" cellspacing=0 cellpadding=10&gt;&lt;tr&gt;&lt;td&gt;'<br>&nbsp;str += '&lt;button onclick=\'if (infoArea.style.display!="block") {infoArea.style.display = "block";window.resizeTo(400,308);this.innerText="Hide Error";}else {infoArea.style.display="none";window.resizeTo(400,219);this.innerText="Show Error";}\''<br>&nbsp;str += 'onmouseover="this.style.borderColor=\'black\'" onmouseout="this.style.borderColor=\'#dddddd\'"&gt;Show Error&lt;/button&gt;'<br>&nbsp;str += '&lt;/td&gt;&lt;td align="RIGHT"&gt;&lt;button onclick="window.close()" onmouseover="this.style.borderColor=\'black\'" onmouseout="this.style.borderColor=\'#dddddd\'"&gt;Ok&lt;/button&gt;'<br>&nbsp;str += '&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;'<br>&nbsp;str += '&lt;div id="infoArea" style="display: none;"&gt;'<br>&nbsp;str += '&lt;div id="info" style="background: #eeeeee; margin: 10; margin-bottom: 0; border: 1 solid #dddddd;"&gt;'<br>&nbsp;str += '&lt;table&gt;'<br>&nbsp