﻿<?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>PHP博客-rick</title><link>http://www.phpweblog.net/rick/</link><description>技术交流</description><language>zh-cn</language><lastBuildDate>Sat, 06 Sep 2008 04:10:37 GMT</lastBuildDate><pubDate>Sat, 06 Sep 2008 04:10:37 GMT</pubDate><ttl>60</ttl><item><title>BBSFTP v2.8 FTP流量插件 for phpwind 5.3[20070609更新]</title><link>http://www.phpweblog.net/rick/archive/2007/06/09/1372.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Sat, 09 Jun 2007 04:56:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2007/06/09/1372.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/1372.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2007/06/09/1372.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/1372.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/1372.html</trackback:ping><description><![CDATA[FTP 流量插件，实现 FTP帐号和论坛帐号一一对应。可以通过论坛币购买下载流量或者下载使用时间。<br><br>插件可同时支持 Serv-U FTP Server 和 Gene6 FTP Server。<br><br>2007-6-9更想：<br>1. 。&#8220;FTP服务器(域)管理&#8221; 中增加部分提示信息指导用户操作。<br>&nbsp; &nbsp; 增加&#8220;用户组权限管理&#8221;功能，方便对不同的用户组设置不同的ftp权限。<br>之前要对不同用户组设置不同的ftp权限，需要使用不同的ftp用户名前缀+用户组限制 来建立多个虚拟FTP域才能实现。现在可以直接在一个 ftp域里面设置了。<br><img onclick="if(this.width>=660) window.open('http://www.discuz.net/attachments/month_0706/20070604_e6625cfe0d35a9eb7e91WiFhlqNfmYcW.jpg.thumb.jpg');" src="http://www.discuz.net/attachments/month_0706/20070604_e6625cfe0d35a9eb7e91WiFhlqNfmYcW.jpg.thumb.jpg" onload="if(this.width>'660')this.width='660';" border=0><br><br><img onclick="if(this.width>=660) window.open('http://www.discuz.net/attachments/month_0706/20070604_09029ddd4e4e91347d61HGYiNVNcmyND.jpg.thumb.jpg');" src="http://www.discuz.net/attachments/month_0706/20070604_09029ddd4e4e91347d61HGYiNVNcmyND.jpg.thumb.jpg" onload="if(this.width>'660')this.width='660';" border=0><br><br>2.修正一处可能导致刷流量的bug。<br><br><br>Serv-U bbsftp v2.8 更新：<br>1.开放 mysql 优化功能的支持。<br>2.增加Ado权限不足时在日志中记录错误信息。<br>3.进行少了优化。<br>4.修正 mcafee 误报的问题。<br><br>bbsftp论坛端插件更新：<br>2007-6-7:<br>1.针对 phpwind5.3 的风格修改的插件模板文件。<br>插件模板使用论坛的风格，和论坛风格完全融合。<br><strong></strong><br><img onclick="if(this.width>=660) window.open('http://img.phpwind.net/attachout/Mon_0706/3_542709_22587ada9259b26.jpg');" src="http://img.phpwind.net/attachout/Mon_0706/3_542709_22587ada9259b26.jpg" width=660 onload="if(this.width>'660')this.width='660';" border=0><br><strong></strong><br><img onclick="if(this.width>=660) window.open('http://img.phpwind.net/attachout/Mon_0706/3_542709_5d9fa968b3ca75e.jpg');" src="http://img.phpwind.net/attachout/Mon_0706/3_542709_5d9fa968b3ca75e.jpg" width=660 onload="if(this.width>'660')this.width='660';" border=0>&nbsp; <br><br>2.修正ftp帐号不使用论坛密码时随机密码错误的问题。<br><br>3.增加集成紫雨轩FTP搜索引擎，集成的FTP搜索引擎在 ftp服务中心首页显示。<br><strong></strong><br><img onclick="if(this.width>=660) window.open('http://img.phpwind.net/attachout/Mon_0706/3_542709_ce491697cb02556.jpg');" src="http://img.phpwind.net/attachout/Mon_0706/3_542709_ce491697cb02556.jpg" width=660 onload="if(this.width>'660')this.width='660';" border=0> <br><br>4.增加 FTP服务中心起始页可设置。如：可以将流量购买页面设置为FTP中心的首页。<br><strong></strong><br><img onclick="if(this.width>=660) window.open('http://img.phpwind.net/attachout/Mon_0706/3_542709_81bd8b7d989ed7f.jpg');" src="http://img.phpwind.net/attachout/Mon_0706/3_542709_81bd8b7d989ed7f.jpg" width=660 onload="if(this.width>'660')this.width='660';" border=0> <br><br>5. 修正公共帐号密码购买的短信通知。<br><br>6.&#8220;数据库服务器管理&#8221; 中增加 测试数据库 的功能，方便安装时检测数据库问题。<br><strong></strong><br><img onclick="if(this.width>=660) window.open('http://img.phpwind.net/attachout/Mon_0706/3_542709_852ffd71a1df68e.jpg');" src="http://img.phpwind.net/attachout/Mon_0706/3_542709_852ffd71a1df68e.jpg" width=660 onload="if(this.width>'660')this.width='660';" border=0> <br><br>bbsftp插件相关文件下载地址：<br><a href="http://redcheek.net/bbsftp" target=_blank><font color=#2f5fa1>http://redcheek.net/bbsftp</font></a><br><br>
<img src ="http://www.phpweblog.net/rick/aggbug/1372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2007-06-09 12:56 <a href="http://www.phpweblog.net/rick/archive/2007/06/09/1372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BBSFTP v2.8 FTP 流量插件 for Discuz 5.5更新</title><link>http://www.phpweblog.net/rick/archive/2007/06/08/1367.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Thu, 07 Jun 2007 16:49:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2007/06/08/1367.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/1367.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2007/06/08/1367.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/1367.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/1367.html</trackback:ping><description><![CDATA[Discuz 5.5论坛插件更新：<br>1。增加 FTP服务中心起始页可设置。如：可以将流量购买页面设置为FTP中心的首页。<br>2。增加FTP服务中心的公告设置，公告可在ftp服务中心首页显示。<br>3。增加集成紫雨轩FTP搜索引擎，集成的FTP搜索引擎在 ftp服务中心首页显示。<br><a href="http://www.discuz.net/attachments/month_0706/20070604_c5343edc0856435c7a92TVHcrCGblqle.jpg" target=_blank><img onmouseover="attachimginfo(this, 'attach_153271', 1)" onmouseout="attachimginfo(this, 'attach_153271', 0, event)" alt=点击在新窗口查看全图 src="http://www.discuz.net/attachments/month_0706/20070604_c5343edc0856435c7a92TVHcrCGblqle.jpg.thumb.jpg" border=0></a>
<div id=attach_153271 onmouseover="showMenu(this.id, 0, 1)" style="DISPLAY: none; LEFT: 207px; POSITION: absolute; TOP: 528px"><img src="http://www.discuz.net/images/default/attachimg.gif" border=0></div>
<div class=t_attach id=attach_153271_menu title=menu style="DISPLAY: none"><img class=absmiddle alt="" src="http://www.discuz.net/images/attachicons/image.gif" border=0> <a class=bold href="http://www.discuz.net/attachment.php?aid=153271&amp;nothumb=yes" target=_blank>ftpse.jpg</a> (29.16 KB)<br>
<div class="right smalltxt">2007-6-4 02:05</div>
</div>
<br>注：以上三项在 &#8220;FTP中心参数设置&#8221; 中。<br><a href="http://www.discuz.net/attachments/month_0706/20070604_64664315eb96d93c1569gSyEejIw3zeD.jpg" target=_blank><img onmouseover="attachimginfo(this, 'attach_153270', 1)" onmouseout="attachimginfo(this, 'attach_153270', 0, event)" alt=点击在新窗口查看全图 src="http://www.discuz.net/attachments/month_0706/20070604_64664315eb96d93c1569gSyEejIw3zeD.jpg.thumb.jpg" border=0></a>
<div id=attach_153270 onmouseover="showMenu(this.id, 0, 1)" style="DISPLAY: none"><img src="http://www.discuz.net/images/default/attachimg.gif" border=0></div>
<div class=t_attach id=attach_153270_menu title=menu style="DISPLAY: none"><img class=absmiddle alt="" src="http://www.discuz.net/images/attachicons/image.gif" border=0> <a class=bold href="http://www.discuz.net/attachment.php?aid=153270&amp;nothumb=yes" target=_blank>set.jpg</a> (59.56 KB)<br>
<div class="right smalltxt">2007-6-4 02:05</div>
</div>
<br><br>4。&#8220;数据库服务器管理&#8221; 中增加 测试数据库 的功能，方便安装时检测数据库问题。<br><a href="http://www.discuz.net/attachments/month_0706/20070604_0014ee0b9bf68874b6caHD3WXcasWuHM.jpg" target=_blank><img onmouseover="attachimginfo(this, 'attach_153272', 1)" onmouseout="attachimginfo(this, 'attach_153272', 0, event)" alt=点击在新窗口查看全图 src="http://www.discuz.net/attachments/month_0706/20070604_0014ee0b9bf68874b6caHD3WXcasWuHM.jpg.thumb.jpg" border=0></a>
<div id=attach_153272 onmouseover="showMenu(this.id, 0, 1)" style="DISPLAY: none"><img src="http://www.discuz.net/images/default/attachimg.gif" border=0></div>
<div class=t_attach id=attach_153272_menu title=menu style="DISPLAY: none"><img class=absmiddle alt="" src="http://www.discuz.net/images/attachicons/image.gif" border=0> <a class=bold href="http://www.discuz.net/attachment.php?aid=153272&amp;nothumb=yes" target=_blank>dbadmin.jpg</a> (35.84 KB)<br>
<div class="right smalltxt">2007-6-4 02:05</div>
</div>
<br>5。&#8220;FTP服务器(域)管理&#8221; 中增加部分提示信息指导用户操作。<br>&nbsp; &nbsp;&nbsp;&nbsp;增加&#8220;用户组权限管理&#8221;功能，方便对不同的用户组设置不同的ftp权限。<br><a href="http://www.discuz.net/attachments/month_0706/20070604_e6625cfe0d35a9eb7e91WiFhlqNfmYcW.jpg" target=_blank><img onmouseover="attachimginfo(this, 'attach_153273', 1)" onmouseout="attachimginfo(this, 'attach_153273', 0, event)" alt=点击在新窗口查看全图 src="http://www.discuz.net/attachments/month_0706/20070604_e6625cfe0d35a9eb7e91WiFhlqNfmYcW.jpg.thumb.jpg" border=0></a>
<div id=attach_153273 onmouseover="showMenu(this.id, 0, 1)" style="DISPLAY: none"><img src="http://www.discuz.net/images/default/attachimg.gif" border=0></div>
<div class=t_attach id=attach_153273_menu title=menu style="DISPLAY: none"><img class=absmiddle alt="" src="http://www.discuz.net/images/attachicons/image.gif" border=0> <a class=bold href="http://www.discuz.net/attachment.php?aid=153273&amp;nothumb=yes" target=_blank>ftpadmin.jpg</a> (49.96 KB)<br>
<div class="right smalltxt">2007-6-4 02:05</div>
</div>
<br>&nbsp; &nbsp;&nbsp;&nbsp;&#8220;用户组权限管理&#8221; 中提供了 用户组 GID 的参考。方便用户在设置用户组限制时使用GID。<br>&nbsp; &nbsp;&nbsp;&nbsp;<a href="http://www.discuz.net/attachments/month_0706/20070604_09029ddd4e4e91347d61HGYiNVNcmyND.jpg" target=_blank><img onmouseover="attachimginfo(this, 'attach_153274', 1)" onmouseout="attachimginfo(this, 'attach_153274', 0, event)" alt=点击在新窗口查看全图 src="http://www.discuz.net/attachments/month_0706/20070604_09029ddd4e4e91347d61HGYiNVNcmyND.jpg.thumb.jpg" border=0></a>
<div id=attach_153274 onmouseover="showMenu(this.id, 0, 1)" style="DISPLAY: none"><img src="http://www.discuz.net/images/default/attachimg.gif" border=0></div>
<div class=t_attach id=attach_153274_menu title=menu style="DISPLAY: none"><img class=absmiddle alt="" src="http://www.discuz.net/images/attachicons/image.gif" border=0> <a class=bold href="http://www.discuz.net/attachment.php?aid=153274&amp;nothumb=yes" target=_blank>gps.jpg</a> (39.53 KB)<br>
<div class="right smalltxt">2007-6-4 02:05</div>
</div>
<br><br>之前要对不同用户组设置不同的ftp权限，需要使用不同的ftp用户名前缀+用户组限制 来建立多个虚拟FTP域才能实现。现在可以直接在一个 ftp域里面设置了。<br><br>6。修正 ftp上传文件管理、下载文件管理中单位显示错误，修正上传量奖励下载量时的单位错误。<br><br>7。修正 ftp购买购买的一个小数bug。<br><br>8。插件模板针对 discuz5.5的模板风格做了一些调整。<br><br>20070605 更新：<br>9. 修正一处可能导致刷流量的bug。<br><br>20070606 更新：<br>ServU插件 bbsftp v2.8 更新：<br>1.开放 mysql 优化功能的支持。<br>2.增加Ado权限不足时在日志中记录错误信息。<br>3.进行少了优化。<br>4.修正了mcafee下的误报问题。<br>升级方式：直接替换 bbsftp.dll 文件即可。<br><br><br>技术交流论坛：<br><a href="http://www.redcheek.net/bbs" target=_blank>http://www.redcheek.net/bbs</a><br><br>bbsftp相关插件文件下载地址：<br><a href="http://www.redcheek.net/bbsftp" target=_blank>http://www.redcheek.net/bbsftp</a><br>重新下载 Discuz 5.5 的论坛插件。其它版本论坛插件未更新。<br><br>升级安装：<br>只要重新上传文件覆盖。<br>备份FTP中心参数 设置信息，卸载插件，然后重新导入插件，<br>再重新配置 FTP中心参数 设置信息。<br>
<img src ="http://www.phpweblog.net/rick/aggbug/1367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2007-06-08 00:49 <a href="http://www.phpweblog.net/rick/archive/2007/06/08/1367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bbsftp FTP流量插件 for Discuz 5.5</title><link>http://www.phpweblog.net/rick/archive/2007/04/08/1077.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Sun, 08 Apr 2007 13:44:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2007/04/08/1077.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/1077.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2007/04/08/1077.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/1077.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/1077.html</trackback:ping><description><![CDATA[全新安装：<br><br>1.后台导入插件 discuz55_plugin_bbsftp.txt<br>2.将 bbsftp 目录 上传到论坛的 plugins 目录中。上传bbsftp.htm到<br>论坛的templates\default中。<br>3.如果你没有修改过 论坛 admin 目录中的 header.inc.php和menu.inc.php<br>直接上传这个两个文件覆盖。<br>如果有改动参考 headermenu修改说明.txt 手动修改。<br><br>5. 使用 db_update.txt 的脚本，在后台更新论坛数据库。<br>注：出于安全考虑, Discuz! 后台默认情况下禁止 SQL 语句直接执行, 只能使用常用 SQL 当中的内容, <br>如果您想自己随意书写 SQL 升级语句, 需要将 config.inc.php 当中的 $admincp['runquery'] 设置修改为 1。<br><br>6。进后台设置FTP中心的参数。<br>参考：<a href="http://www.redcheek.net/bbs/read.php?tid=4081" target=_blank><font face=Tahoma color=#111111>http://www.redcheek.net/bbs/read.php?tid=4081</font></a><br><br>从DZ5升级安装：<br>只要重新上传文件覆盖即可。<br><br>下载：<a href="http://www.redcheek.net/bbsftp" target=_blank><font face=Tahoma color=#111111>http://www.redcheek.net/bbsftp</font></a> 
<img src ="http://www.phpweblog.net/rick/aggbug/1077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2007-04-08 21:44 <a href="http://www.phpweblog.net/rick/archive/2007/04/08/1077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证码技术及其实现</title><link>http://www.phpweblog.net/rick/archive/2006/07/31/272.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Sun, 30 Jul 2006 16:55:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/31/272.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/272.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/31/272.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/272.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/272.html</trackback:ping><description><![CDATA[目前，不少网站为了防止用户利用机器人自动注册、登录、灌水，都采用了验证码技术。所谓验证码，就是将一串随机产生的数字或符号，生成一幅图片，图片里加上一些干扰象素（防止OCR），由用户肉眼识别其中的验证码信息，输入表单提交网站验证，验证成功后才能使用某项功能。 <br />PHP实现： <br />  我们这里展示了如何编写PHP程序实现验证码功能： <br />   <br />        代码一：　 <br />   <br />        　　&lt;?php <br />        　 /* <br />        　　*　 Filename:　　authpage.php <br />        　　*　 Author:　 hutuworm <br />        　　*　 Date:　 2003-04-28 <br />        　　*　 @Copyleft　　hutuworm.org <br />        　　*/ <br />   <br />        　　srand((double)microtime()*1000000); <br />   <br />        　 //验证用户输入是否和验证码一致 <br />        　　　　if(isset($HTTP_POST_VARS['authinput']))　 <br />        　　　　{ <br />        　　　　　　　　if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0) <br />   <br />        　　　　　　　　　　　　echo "验证成功！"; <br />        　　　　　　　　else <br />        　　　　　　　　　　　　echo "验证失败！"; <br />        　　　　} <br />        　　 <br />        　 //生成新的四位整数验证码 <br />        　　　　while(($authnum=rand()%10000)&lt;1000);　 <br />        　　?&gt; <br />        　　　　&lt;form action=authpage.php method=post&gt; <br />        　　　　&lt;table&gt; <br />        　　　　　　　　请输入验证码：&lt;input type=text name=authinput style="width: <br />        80px"&gt;&lt;br&gt; <br />        　　　　　　　　&lt;input type=submit name="验证" value="提交验证码"&gt; <br />        　　　　　　　　&lt;input type=hidden name=authnum value=&lt;? echo $authnum; ?&gt;&gt; <br />        　　　　　　　　&lt;img src=authimg.php?authnum=&lt;? echo $authnum; ?&gt;&gt; <br />        　　　　&lt;/table&gt; <br />        　　　　&lt;/form&gt; <br />   <br />        代码二： <br />   <br />        &lt;?php <br />        　 /* <br />        　　*　 Filename:　　authimg.php <br />        　　*　 Author:　 hutuworm <br />        　　*　 Date:　 2003-04-28 <br />        　　*　 @Copyleft　　hutuworm.org <br />        　　*/ <br />   <br />        　 //生成验证码图片 <br />        　　　　Header("Content-type: image/PNG");　 <br />        　　　　srand((double)microtime()*1000000); <br />        　　　　$im = imagecreate(58,28); <br />        　　　　$black = ImageColorAllocate($im, 0,0,0); <br />        　　　　$white = ImageColorAllocate($im, 255,255,255); <br />        　　　　$gray = ImageColorAllocate($im, 200,200,200); <br />        　　　　imagefill($im,68,30,$gray); <br />   <br />        　 //将四位整数验证码绘入图片 <br />        　　　　imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black); <br />   <br />        　　　　for($i=0;$i&lt;50;$i++)　 //加入干扰象素 <br />        　　　　{ <br />        　　　　　　　　imagesetpixel($im, rand()%70 , rand()%30 , $black); <br />        　　　　} <br />   <br />        　　　　ImagePNG($im); <br />        　　　　ImageDestroy($im); <br />        ?&gt; <br />   <br />   <br />   <br />        本文程序在Apache 2.0.45 + PHP 4.3.1环境下运行通过。 <br />   <br />        上文只是对验证码功能的一个简单实现，并没有考虑商用安全性问题。如果要增强安全性，将此功能投入商业应用，则可以通过以下几个步骤实现： <br />   <br />        1. 启用Session。 <br />        2. authnum在authimg.php中生成，并计算md5sum，存入session。 <br />        3. <br />  authpage.php将authinput计算md5sum后，与session中的authnum（md5sum）对比得出验证结果。 <br />   <br />   <br />        本站注：作者使用了简单的代码实现了很酷的功能。不过在添加干扰像素时的效果不是太好，大家可以看一下雨声论坛登录时的效验码(http://ror.cn/perl/ut/user_login.cgi)，偶把第二段代码稍改了一下，生成了与其类似的效果。 <br />   <br />        修改后的代码如下： <br />   <br />        &lt;?php <br />        /* <br />        *　 Filename: authimg.php <br />        *　 Author:　 hutuworm <br />        *　 Date:　　 2003-04-28 <br />        *　 @Copyleft hutuworm.org <br />        */ <br />        //生成验证码图片 <br />        Header("Content-type: image/PNG");　 <br />        srand((double)microtime()*1000000); <br />        $im = imagecreate(62,20); <br />        $black = ImageColorAllocate($im, 0,0,0); <br />        $white = ImageColorAllocate($im, 255,255,255); <br />        $gray = ImageColorAllocate($im, 200,200,200); <br />        imagefill($im,68,30,$gray); <br />        while(($authnum=rand()%100000)&lt;10000); <br />        //将四位整数验证码绘入图片 <br />        imagestring($im, 5, 10, 3, $authnum, $black); <br />        for($i=0;$i&lt;200;$i++)　 //加入干扰象素 <br />        { <br />        　　$randcolor = <br />        ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255)); <br />        　　imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); <br />        } <br />        ImagePNG($im); <br />        ImageDestroy($im); <br />        ?&gt; <br />        显示结果如下图： <br />  <a href="http://www.phpe.net/uploads/images/article_1053154352.png" target="_blank">[在新窗口中浏览该图片]</a><br /><a href="http://www.phpe.net/uploads/images/article_1053154352.png" target="_blank"><img title="按此在新窗口浏览图片" src="http://www.phpe.net/uploads/images/article_1053154352.png" onload="javascript:if(this.width&gt;screen.width-300)this.width=screen.width-300" border="0" /></a><br />  有兴趣的朋友可以自己试一下。 <br /><br />看一下上面这段代码： <br />  第一次看PHP代码，呵呵。奇怪的学习经历。 <br />   <br />   <br />  代码一：　 <br />     <br />          　　&lt;?php <br />          　 /* <br />          　　*　 Filename:　　authpage.php <br />          　　*　 Author:　 hutuworm <br />          　　*　 Date:　 2003-04-28 <br />          　　*　 @Copyleft　　hutuworm.org <br />          　　*/ <br />   <br />  //以系统时间为种子得到随机数 <br />  //srand -- 播下随机数发生器种子 <br />  //microtime -- 返回当前 UNIX 时间戳和微秒数 <br />   <br />          　　srand((double)microtime()*1000000); <br />     <br />          　 //验证用户输入是否和验证码一致 <br />          　　　　if(isset($HTTP_POST_VARS['authinput']))　 <br />          　　　　{ <br />  //authnum的值是不应该发送到客户端的，这里应该是为了构建一个简单的例子先吧 <br />  //authnum 保存在　session 里应该是个可行的办法 <br />   <br />          　　　　　　　　if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0) <br />     <br />          　　　　　　　　　　　　echo "验证成功！"; <br />          　　　　　　　　else <br />          　　　　　　　　　　　　echo "验证失败！"; <br />          　　　　} <br />          　　 <br />          　 //生成新的四位整数验证码 <br />          　　　　while(($authnum=rand()%10000)&lt;1000);　 <br />          　　?&gt; <br />          　　　　&lt;form action=authpage.php method=post&gt; <br />          　　　　&lt;table&gt; <br />          　　　　　　　　请输入验证码：&lt;input type=text name=authinput style="width: <br />          80px"&gt;&lt;br&gt; <br />          　　　　　　　　&lt;input type=submit name="验证" value="提交验证码"&gt; <br />          　　　　　　　　&lt;input type=hidden name=authnum value=&lt;? echo $authnum; ?&gt;&gt; <br />          　　　　　　　　&lt;img src=authimg.php?authnum=&lt;? echo $authnum; ?&gt;&gt; <br />          　　　　&lt;/table&gt; <br />          　　　　&lt;/form&gt; <br />     <br />          代码二： <br />   <br />     <br />          &lt;?php <br />          　 /* <br />          　　*　 Filename:　　authimg.php <br />          　　*　 Author:　 hutuworm <br />          　　*　 Date:　 2003-04-28 <br />          　　*　 @Copyleft　　hutuworm.org <br />          　　*/ <br />   <br />  //下面几行代码肯定会让写ASP的GGDD们羡慕不已。 <br />     <br />          　 //生成验证码图片 <br />   <br />  //指定头信息 <br />     <br />          　　　　Header("Content-type: image/PNG");　 <br />          　　　　srand((double)microtime()*1000000); <br />   <br />  //返回一个图像标识符，代表了一幅大小为58 X 28的空白图像。 <br />            　　　　$im = imagecreate(58,28); <br />          　　　　$black = ImageColorAllocate($im, 0,0,0); <br />          　　　　$white = ImageColorAllocate($im, 255,255,255); <br />          　　　　$gray = ImageColorAllocate($im, 200,200,200); <br />          　　　　imagefill($im,68,30,$gray); <br />   <br />   <br />  //强悍！！ <br />   <br />    <br />          　 //将四位整数验证码绘入图片 <br />   <br />  //方便起见，使可以通过authimg.php?authnum=XXXX的方式得到图片。实际应用中这种做法肯定是不足取的。 <br />           　 <br />  　　　imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black); <br />     <br />          　　　　for($i=0;$i&lt;50;$i++)　 //加入干扰象素 <br />          　　　　{ <br />          　　　　　　　　imagesetpixel($im, rand()%70 , rand()%30 , $black); <br />          　　　　} <br />     <br />          　　　　ImagePNG($im); <br />  //imagepng -- 以 PNG 格式将图像输出到浏览器或文件 <br />          　　　　ImageDestroy($im); <br />          ?&gt; <br />     <br />     <br />     <br />          本文程序在Apache 2.0.45 + PHP 4.3.1环境下运行通过。 <br />     <br />          上文只是对验证码功能的一个简单实现，并没有考虑商用安全性问题。如果要增强安全性，将此功能投入商业应用，则可以通过以下几个步骤实现： <br />     <br />          1. 启用Session。 <br />          2. authnum在authimg.php中生成，并计算md5sum，存入session。 <br />          3. authpage.php将authinput计算md5sum后，与session中的authnum（md5sum）对比得出验证结果。 <br />     <br />     <br />          本站注：作者使用了简单的代码实现了很酷的功能。不过在添加干扰像素时的效果不是太好，大家可以看一下雨声论坛登录时的效验码(http://ror.cn/perl/ut/user_login.cgi)，偶把第二段代码稍改了一下，生成了与其类似的效果。 <br />     <br />          修改后的代码如下： <br />     <br />          &lt;?php <br />          /* <br />          *　 Filename: authimg.php <br />          *　 Author:　 hutuworm <br />          *　 Date:　　 2003-04-28 <br />          *　 @Copyleft hutuworm.org <br />          */ <br />          //生成验证码图片 <br />          Header("Content-type: image/PNG");　 <br />          srand((double)microtime()*1000000); <br />          $im = imagecreate(62,20); <br />          $black = ImageColorAllocate($im, 0,0,0); <br />          $white = ImageColorAllocate($im, 255,255,255); <br />          $gray = ImageColorAllocate($im, 200,200,200); <br />          imagefill($im,68,30,$gray); <br />          while(($authnum=rand()%100000)&lt;10000); <br />          //将四位整数验证码绘入图片 <br />          imagestring($im, 5, 10, 3, $authnum, $black); <br />          for($i=0;$i&lt;200;$i++)　 //加入干扰象素 <br />          { <br />          　　$randcolor = <br />          ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255)); <br />          　　imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); <br />          } <br />          ImagePNG($im); <br />          ImageDestroy($im); <br />          ?&gt; <br />验证码技术核心内容是动态生成图片。ASP做到这一点，最简单也是最普遍的就是用到XBM。我们先了解一下XBM的相关知识。 <br />   <br />   <br />  [转]用XBM创建动态客户端图像 <br />   <br />  作者： BUILDER.COM <br />  Wednesday, April 9 2003 11:23 AM <br />  X-Bitmap（XBM）是一种古老但通用的图像文件格式，它与现在的许多Web浏览器都兼容。X-Windows图形界面（UNIX和Linux常用的GUI）的C代码库xlib中有一个组件专门描述了它的规范。我将解释XBM格式的工作原理，然后向你展示一种更有趣的使用它的方法：在客户端创建动态图像。文章中的代码可以在此下载。 <br />   <br />  XBM基础 <br />   <br />  XBM格式本来是为存储单色的系统位图而设计的，比如图标和鼠标指针。XBM图形的实质上是使用16进制数组来表示二进制图像的C源代码文件。(16进制数组表示的二进制图像) <br />   <br />  这里你也许会问：这种文件格式与Web浏览器有什么关系？在上世纪九十年代早期，美国超级计算应用中心（NCSA）在伊利诺斯大学开发第一个被广泛使用的Web浏览器，名为Mosaic。这个浏览器的图形支持来自很多开放源码代码库，其中就包括xlib。因此，导致今天的许多浏览器能够处理XBM图形。 <br />   <br />  Mosaic项目后来成为了Netscape浏览器的开发基础。微软也借用了一部分Mosaic代码来创建Internet Explorer。微软继而在网络信息服务器（IIS）中将XBM作为一个MIME类型注册而提供本地支持，并且在现有所有版本的Internet Explorer中将其作为一种可支持的图像。(浏览器的广泛支持) <br />   <br />  从一个程序员的角度来看，JPEG或GIF与XBM有着极大的不同。这两种文件格式都在位级别上操作并使用了压缩算法。它们可以支持很大的颜色深度范围。创建这些动态Web图形的唯一方法是使用服务器端的脚本，比如&lt;a href=http://stein.cshl.org/WWW/software/GD/GD.pm和CGI/Perl脚本的结合，或者通过System.Drawing名字空间访问ASP.NET中的图形设计接口类库（GDI+）。(升级到ASP.NET有很多个理由。) <br />   <br />  XBM创建起来很有程序性。每个位都被一一指定，而结果图形被限制为两色（黑色和白色）。(局限性之一：让人不爽)X-Bitmap并不是必须服务器端脚本，可以在客户端用JavaScript实时创建它们。(增加了不少灵活性) <br />   <br />  X-Bitmap的实用程序包括动态生成的图、页面计数器、老式图形图标、以及统计图表。(就是通过位控制太麻烦了，有良好的包装就好了。另外：生成图片的大小，算法的强度，是否都达到了可用的要求？)给我印象最深的XMB应用是一个叫Wolfenstein 5k的游戏，它是一个纹理映射的第一视角射击游戏，用JavaScript编写，只有5KB大小。(不错啊，稍后爽一下) <br />通过使用IMG标识可以很容易地将XBM文件嵌入到一个Web页面中。其语法如下： <br />   <br />  &lt;img src=”xbmsmill.xbm”&gt; <br />   <br />  ---------------------------------------------------------------------- <br />  注意 <br />   <br />  这种格式不对Mac或相应的浏览器有效，比如Mozilla的早期版本。 <br />   <br />   <br />  ---------------------------------------------------------------------- <br />  典型的XBM源代码与列表A中显示的比较相像。 <br />   <br />  #define语句以像素点为单位设置了图像的宽度和高度。你也可以使用x_hot和y_hot命令来定义图像中的一个热点。我已经创建了一个X-Bitmap来描绘这个过程。为了设计它，我先将图像映射为二进制值，如果你仔细的看，在这里你会看到一张笑脸。 <br />   <br />  我所创建的二进制图像宽16个数字高7个数字，在我们的源代码的XBM头中定义了相同大小的宽/高像素值。图像本身被存储在一个静态数组中，它包含一列二进制编码的十六进制（BCH）值——换句话说，每四位分成一组。 <br />   <br />  计算出笑脸的十六进制值得最简单的方法是一次检验图像的一行，将二进制值分成四位一组的分段，将每个分段映射成二进制/十六进制表中对应的十六进制数。下面是第一行： <br />   <br />  0001100001100000 <br />   <br />  下面两行分别表示四位的分段和其在表A中对应的十六进制数 <br />   <br />  二进制： 0001  1000  0110  0000 <br />   <br />  十六进制：  8   1   6   0 <br />   <br />  表A <br />   <br />  XBM二/十六进制转换表 <br />   <br />  二进制 十六进制 <br />   <br />  0000 0 <br />   <br />  1000 1 <br />   <br />  0100 2 <br />   <br />  1100 3 <br />   <br />  0010 4 <br />   <br />  1010 5 <br />   <br />  0110 6 <br />   <br />  1110 7 <br />   <br />  0001 8 <br />   <br />  1001 9 <br />   <br />  0101 A <br />   <br />  1101 B <br />   <br />  0011 C <br />   <br />  1011 D <br />   <br />  0111 E <br />   <br />  1111 F <br />   <br />   <br />  请注意这些并不是标准的二/十六进制转换。它们是反向计算的（从左到右）而不是从右到左。把它颠倒是因为浏览器会从左到右来读图形，我们的代码必须与其一致。 <br />   <br />  最后要把这些十六进制值转换成XBM的右格式。必须在每个十六进制值前加“0x”。这是标准C++表示十六进制的方法。然后将这些值从右到左输出（每个十六进制对表示八位二进制位）。请看列表B中的例子。 <br />   <br />  因此，我们可以说： <br />   <br />  0001100001100000=0x18,0x06 <br />   <br />  这些符合XBM的值可以很容易地插入到图像数组中： <br />   <br />  static unsigned char xbmsmile_bits[]= <br />   <br />  现在我们来看看格式本身，现在是时候来学习在客户端浏览器中动态创建X-Bitmap了。 <br />图片用点阵的形式表示，比如2: <br />   <br />  00111100 0011为3 1100为C 即0x3c <br />  01100110 0110为6 0110为6 0x66 <br />  01100000 ....... 0x表示十六进制数。 <br />  01100000 依此类推 <br />  00110000 这是用二进制数得到的点阵，其中的1为显示一黑点，0不显示 <br />  00011000 是一个反着看的2 <br />  00001100 其余数字可自已排列点阵再二进制化为十六进制数 <br />  00000110 缺点是只有黑白两种颜色 <br />  00000110 显示出来是白底黑字，要显示黑底白字的话，对其取反就行了 <br />  01111110 <br />   <br />  下面是我"画"的0-9的数字 <br />   <br />  num.asp <br />   <br />  &lt;% <br />  Dim a(10,10) <br />   <br />  a(0,1) = "0x3c" '数字0 <br />  a(0,2) = "0x66" <br />  a(0,3) = "0xc3" <br />  a(0,4) = "0xc3" <br />  a(0,5) = "0xc3" <br />  a(0,6) = "0xc3" <br />  a(0,7) = "0xc3" <br />  a(0,8) = "0xc3" <br />  a(0,9) = "0x66" <br />  a(0,10)= "0x3c" <br />   <br />  a(1,1) = "0x18" '数字1 <br />  a(1,2) = "0x1c" <br />  a(1,3) = "0x18" <br />  a(1,4) = "0x18" <br />  a(1,5) = "0x18" <br />  a(1,6) = "0x18" <br />  a(1,7) = "0x18" <br />  a(1,8) = "0x18" <br />  a(1,9) = "0x18" <br />  a(0,10)= "0x7e" <br />   <br />   <br />  a(2,1) = "0x3c" '数字2 <br />  a(2,2) = "0x66" <br />  a(2,3) = "0x60" <br />  a(2,4) = "0x60" <br />  a(2,5) = "0x30" <br />  a(2,6) = "0x18" <br />  a(2,7) = "0x0c" <br />  a(2,8) = "0x06" <br />  a(2,9) = "0x06" <br />  a(2,10)= "0x7e" <br />   <br />  a(3,1) = "0x3c" '数字3 <br />  a(3,2) = "0x66" <br />  a(3,3) = "0xc0" <br />  a(3,4) = "0x60" <br />  a(3,5) = "0x1c" <br />  a(3,6) = "0x60" <br />  a(3,7) = "0xc0" <br />  a(3,8) = "0xc0" <br />  a(3,9) = "0x66" <br />  a(3,10)= "0x38" <br />   <br />  a(4,1) = "0x38" '数字4 <br />  a(4,2) = "0x3c" <br />  a(4,3) = "0x36" <br />  a(4,4) = "0x33" <br />  a(4,5) = "0x33" <br />  a(4,6) = "0x33" <br />  a(4,7) = "0xff" <br />  a(4,8) = "0x30" <br />  a(4,9) = "0x30" <br />  a(4,10)= "0xfe" <br />   <br />  a(5,1) = "0xfe" '数字5 <br />  a(5,2) = "0xfe" <br />  a(5,3) = "0x06" <br />  a(5,4) = "0x06" <br />  a(5,5) = "0x3e" <br />  a(5,6) = "0x60" <br />  a(5,7) = "0xc0" <br />  a(5,8) = "0xc3" <br />  a(5,9) = "0x66" <br />  a(5,10)= "0x3c" <br />   <br />  a(6,1) = "0x60" '数字6 <br />  a(6,2) = "0x30" <br />  a(6,3) = "0x18" <br />  a(6,4) = "0x0c" <br />  a(6,5) = "0x3e" <br />  a(6,6) = "0x63" <br />  a(6,7) = "0xc3" <br />  a(6,8) = "0xc3" <br />  a(6,9) = "0x66" <br />  a(6,10) ="0x3c" <br />   <br />  a(7,1) = "0xff" '数字7 <br />  a(7,2) = "0xc0" <br />  a(7,3) = "0x60" <br />  a(7,4) = "0x30" <br />  a(7,5) = "0x18" <br />  a(7,6) = "0x18" <br />  a(7,7) = "0x18" <br />  a(7,8) = "0x18" <br />  a(7,9) = "0x18" <br />  a(7,10)= "0x18" <br />   <br />  a(8,1) = "0x3c" '数字8 <br />  a(8,2) = "0x66" <br />  a(8,3) = "0xc3" <br />  a(8,4) = "0x66" <br />  a(8,5) = "0x3c" <br />  a(8,6) = "0x66" <br />  a(8,7) = "0xc3" <br />  a(8,8) = "0xc3" <br />  a(8,9) = "0x66" <br />  a(8,10)= "0x3c" <br />   <br />  a(9,1) = "0x3c" '数字9 <br />  a(9,2) = "0x66" <br />  a(9,3) = "0xc3" <br />  a(9,4) = "0xc3" <br />  a(9,5) = "0x66" <br />  a(9,6) = "0x3c" <br />  a(9,7) = "0x18" <br />  a(9,8) = "0x0c" <br />  a(9,9) = "0x06" <br />  a(9,10)= "0x03" <br />   <br />  %&gt; <br />   <br />  显示的方法是: <br />   <br />  1.先传出一个MIME: <br />  Response.ContentType = "image/x-xbitmap" <br />  2.再传出一个c++的源程序,如显示2: <br />  #define counter_width 8 <br />  #define counter_height 10 <br />  static unsigned char counter_bits[] = { <br />  0x3c,0x66,0x60,0x60,0x30,0x18,0x0c,0x06,0x06,0x7e <br />  }; <br />  这样在浏览器上就显示出来一个8*10像素的2了 <br />   <br />  要显示两个或以上的数字的时候，须改动宽度的值(必须是图像点阵宽度的整数倍)，在count_bits[]数组的值排序如下： <br />  比如显示 12 <br />  a(1,1), a(2,1), a(1,2), a(2,2)... a(1,10), a(2,10) <br />  下面是具体计数器的例子: <br />   <br />  count.asp <br />   <br />  &lt;!--#include file="num.asp"--&gt; <br />  &lt;% <br />  Dim Image <br />  Dim Width, Height <br />  Dim num <br />  Dim digtal <br />  Dim Length <br />  Dim sort <br />  Length = 10 '自定计数器长度 <br />   <br />  Redim sort( Length ) <br />   <br />   <br />  num = 62275 '计数器的值 <br />  digital = "" <br />  For I = 1 To Length -Len( num ) '补0 <br />  digital = digital &amp; "0" <br />  Next <br />  For I = 1 To Len( num ) <br />  digital = digital &amp; Mid( num, I, 1 ) <br />  Next <br />  For I = 1 To Len( digital ) <br />  sort(I) = Mid( digital, I, 1 ) <br />  Next <br />  Width = 8 * Len( digital ) '图像的宽度 <br />  Height = 10 '图像的高度，在本例中为固定值 <br />   <br />   <br />  Response.ContentType="image/x-xbitmap" <br />   <br />  hc=chr(13) &amp; chr(10) <br />   <br />  Image = "#define counter_width " &amp; Width &amp; hc <br />  Image = Image &amp; "#define counter_height " &amp; Height &amp; hc <br />  Image = Image &amp; "static unsigned char counter_bits[]={" &amp; hc <br />   <br />  For I = 1 To Height <br />  For J = 1 To Length <br />  Image = Image &amp; a(sort(J),I) &amp; "," <br />  Next <br />  Next <br />   <br />  Image = Left( Image, Len( Image ) - 1 ) '去掉最后一个逗号 <br />  Image = Image &amp; "};" &amp; hc <br />   <br />  Response.Write Image <br />   <br />  %&gt; <br />把 <br />  #define counter_width 8 <br />  #define counter_height 10 <br />  static unsigned char counter_bits[] = { <br />    0x3c,0x66,0x60,0x60,0x30,0x18,0x0c,0x06,0x06,0x7e <br />    }; <br />  保存为 xbm 文件就可以得到一张显示为 2 的图片 <br />   <br />   <br />  #define counter_width 80 <br />  #define counter_height 10 <br />  static unsigned char counter_bits[]={ <br />  0x3c,0x3c,0x3c,0x3c,0x3c,0x60,0x3c,0x3c,0xff,0xfe,0x66,0x66,0x66,0x66,0x66,0x30,0x66,0x66,0xc0,0xfe,0xc3,0xc3,0xc3,0xc3,0xc3,0x18,0x60,0x60,0x60,0x06,0xc3,0xc3,0xc3,0xc3,0xc3,0x0c,0x60,0x60,0x30,0x06,0xc3,0xc3,0xc3,0xc3,0xc3,0x3e,0x30,0x30,0x18,0x3e,0xc3,0xc3,0xc3,0xc3,0xc3,0x63,0x18,0x18,0x18,0x60,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0c,0x0c,0x18,0xc0,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x06,0x06,0x18,0xc3,0x66,0x66,0x66,0x66,0x66,0x66,0x06,0x06,0x18,0x66,0x7e,0x7e,0x7e,0x7e,0x7e,0x3c,0x7e,0x7e,0x18,0x3c}; <br />  保存为 xbm文件则显示为 0000062275 。 <br /><img src ="http://www.phpweblog.net/rick/aggbug/272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-31 00:55 <a href="http://www.phpweblog.net/rick/archive/2006/07/31/272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单地缓存任何PHP程序输出的思路</title><link>http://www.phpweblog.net/rick/archive/2006/07/31/271.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Sun, 30 Jul 2006 16:45:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/31/271.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/271.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/31/271.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/271.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/271.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; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (</span>
				<span style="COLOR: #008080">time</span>
				<span style="COLOR: #000000">() </span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008080">filemtime</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">index.cache</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">) </span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">60</span>
				<span style="COLOR: #000000">)    </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">如果缓存文件为两分钟前更新，则重新生成缓存 </span>
				<span style="COLOR: #008000">
						<br />
				</span>
				<span style="COLOR: #000000">  @</span>
				<span style="COLOR: #008080">ob_start</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">output</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">);        </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">使用output函数捕捉正常输出并缓存 </span>
				<span style="COLOR: #008000">
						<br />
				</span>
				<span style="COLOR: #0000ff">else</span>
				<span style="COLOR: #000000">              </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">否则直接输出缓存页面 </span>
				<span style="COLOR: #008000">
						<br />
				</span>
				<span style="COLOR: #000000">{ <br />  @</span>
				<span style="COLOR: #008080">ob_start</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">ob_gzhandler</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">); <br />  </span>
				<span style="COLOR: #008080">readfile</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">index.cache</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">); <br />  </span>
				<span style="COLOR: #0000ff">exit</span>
				<span style="COLOR: #000000">; <br />} <br /><br /><br /></span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> output(</span>
				<span style="COLOR: #800080">$buffer</span>
				<span style="COLOR: #000000">) <br />{ <br />  </span>
				<span style="COLOR: #800080">$scriptname</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #800080">$_SERVER</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">SCRIPT_FILENAME</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">]; <br />  </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (</span>
				<span style="COLOR: #800080">$scriptname</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: #800080">$scriptname</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #800080">$_SERVER</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">PATH_TRANSLATED</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">]; <br />  @</span>
				<span style="COLOR: #008080">chdir</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #008080">dirname</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #800080">$scriptname</span>
				<span style="COLOR: #000000">)); <br /><br />  </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (</span>
				<span style="COLOR: #800080">$fp</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> @</span>
				<span style="COLOR: #008080">fopen</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">index.cache</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">w</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">)) <br />  { <br />    @</span>
				<span style="COLOR: #008080">flock</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #800080">$fp</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> LOCK_EX); <br />    @</span>
				<span style="COLOR: #008080">fwrite</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #800080">$fp</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #800080">$buffer</span>
				<span style="COLOR: #000000">); <br />    @</span>
				<span style="COLOR: #008080">fclose</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #800080">$fp</span>
				<span style="COLOR: #000000">); <br />  } <br /><br />  </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (</span>
				<span style="COLOR: #008080">function_exists</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">gzencode</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">) </span>
				<span style="COLOR: #000000">&amp;&amp;</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008080">ereg</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">gzip</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #800080">$_SERVER</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">HTTP_ACCEPT_ENCODING</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">])) <br />  { <br />    </span>
				<span style="COLOR: #008080">header</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">Content-Encoding: gzip</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">); <br />    </span>
				<span style="COLOR: #0000ff">return</span>
				<span style="COLOR: #000000"> @</span>
				<span style="COLOR: #008080">gzencode</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #800080">$buffer</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">9</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> FORCE_GZIP); <br />  } <br />  </span>
				<span style="COLOR: #0000ff">else</span>
				<span style="COLOR: #000000"> <br />    </span>
				<span style="COLOR: #0000ff">return</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #800080">$buffer</span>
				<span style="COLOR: #000000">; <br />} <br /></span>
		</div>
<img src ="http://www.phpweblog.net/rick/aggbug/271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-31 00:45 <a href="http://www.phpweblog.net/rick/archive/2006/07/31/271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用socket代替fopen直接读取的PHP函数</title><link>http://www.phpweblog.net/rick/archive/2006/07/31/269.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Sun, 30 Jul 2006 16:44:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/31/269.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/269.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/31/269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/269.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/269.html</trackback:ping><description><![CDATA[可以伪装成本站来源和XP SP2的客户端，从而躲过一些站点的检查 <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"><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> get(</span><span style="COLOR: #800080">$url</span><span style="COLOR: #000000">) <br />{ <br /></span><span style="COLOR: #800080">$url</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #008080">eregi_replace</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">^http://</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"> </span><span style="COLOR: #800080">$url</span><span style="COLOR: #000000">); <br /></span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #008080">explode</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"> </span><span style="COLOR: #800080">$url</span><span style="COLOR: #000000">); <br /></span><span style="COLOR: #800080">$host</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #008080">array_shift</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000">); <br /></span><span style="COLOR: #800080">$path</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">'</span><span style="COLOR: #000000">.</span><span style="COLOR: #008080">implode</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"> </span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000">); <br /></span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #008080">explode</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"> </span><span style="COLOR: #800080">$host</span><span style="COLOR: #000000">); <br /></span><span style="COLOR: #800080">$host</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]; <br /></span><span style="COLOR: #800080">$port</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">isset</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]) </span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$temp</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">] </span><span style="COLOR: #000000">:</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">80</span><span style="COLOR: #000000">; <br /><br /></span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> @</span><span style="COLOR: #008080">fsockopen</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$host</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$port</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #800080">$errno</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #800080">$errstr</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">); <br /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">) <br />{ <br />@</span><span style="COLOR: #008080">fputs</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GET $path HTTP/1.1\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br />@</span><span style="COLOR: #008080">fputs</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Host: $host\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br />@</span><span style="COLOR: #008080">fputs</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Accept: */*\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br />@</span><span style="COLOR: #008080">fputs</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Referer: http://$host/\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br />@</span><span style="COLOR: #008080">fputs</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br />@</span><span style="COLOR: #008080">fputs</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Connection: Close\r\n\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br />} <br /><br /></span><span style="COLOR: #800080">$Content</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">; <br /></span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000"> (</span><span style="COLOR: #800080">$str</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> @</span><span style="COLOR: #008080">fread</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">4096</span><span style="COLOR: #000000">)) <br /></span><span style="COLOR: #800080">$Content</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">.=</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$str</span><span style="COLOR: #000000">; <br />@</span><span style="COLOR: #008080">fclose</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$fp</span><span style="COLOR: #000000">); <br /><br /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$Content</span><span style="COLOR: #000000">; <br />} <br /></span></div><img src ="http://www.phpweblog.net/rick/aggbug/269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-31 00:44 <a href="http://www.phpweblog.net/rick/archive/2006/07/31/269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php5.1时区</title><link>http://www.phpweblog.net/rick/archive/2006/07/31/268.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Sun, 30 Jul 2006 16:41:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/31/268.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/268.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/31/268.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/268.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/268.html</trackback:ping><description><![CDATA[php.ini设置文件里有这么一项: <br /><br />;date.timezone = <br /><br />把上面的式子更改成 <br /><br />date.timezone ="Hongkong" <br />就可以了. <br />当然有更方便控制的方法,如: <br /><br />if(function_exists('date_default_timezone_set')) { <br />date_default_timezone_set('Hongkong');//该函数为PHP5.1内置,这里设置为香港时间。 <br />} <br />?&gt; <br /><img src ="http://www.phpweblog.net/rick/aggbug/268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-31 00:41 <a href="http://www.phpweblog.net/rick/archive/2006/07/31/268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BBSFTP 2.1 FTP流量插件 for 魔力论坛 Molyx 2.5</title><link>http://www.phpweblog.net/rick/archive/2006/07/20/214.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Thu, 20 Jul 2006 12:38:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/20/214.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/214.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/20/214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/214.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/214.html</trackback:ping><description><![CDATA[FTP的购买方式&nbsp;分为&nbsp;<br>1。包流量购买方式，（就是以前的主力ftp流量购买和联盟ftp流量购买）。<br>2。公共账号密码购买方式。（以前的主力FTP公共账号密码购买）。<br>3。包时间购买方式，（该方式和包流量购买方式的设置、购买基本一样）。<br>1，3&nbsp;的ftp可以设置&nbsp;用户组限制，发贴数限制，威望限制，现金限制。<br>1，3&nbsp;的ftp用户&nbsp;其下载速度和下载线程数，和论坛用户等级关联。<br>关联规则可以在插件后台进行设置。<br><br>论坛端插件有安装程序和安装说明文档，参考安装即可。<br><br>ServU端插件的安装：<br>bbsftp&nbsp;2.0&nbsp;提供了servu端插件的安装程序，直接执行安装即可。<br><br><br>下载地址：<a href="http://www.redcheek.net/bbsftp/">http://www.redcheek.net/bbsftp/</a> 
<img src ="http://www.phpweblog.net/rick/aggbug/214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-20 20:38 <a href="http://www.phpweblog.net/rick/archive/2006/07/20/214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BBSFTP 2.1 FTP流量插件 for vBulletin 3.5.x &amp; 3.6</title><link>http://www.phpweblog.net/rick/archive/2006/07/20/213.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Thu, 20 Jul 2006 12:37:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/20/213.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/213.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/20/213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/213.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/213.html</trackback:ping><description><![CDATA[FTP的购买方式&nbsp;分为&nbsp;<br>1。包流量购买方式，（就是以前的主力ftp流量购买和联盟ftp流量购买）。<br>2。公共账号密码购买方式。（以前的主力FTP公共账号密码购买）。<br>3。包时间购买方式，（该方式和包流量购买方式的设置、购买基本一样）。<br>1，3&nbsp;的ftp可以设置&nbsp;用户组限制，发贴数限制，威望限制，现金限制。<br>1，3&nbsp;的ftp用户&nbsp;其下载速度和下载线程数，和论坛用户等级关联。<br>关联规则可以在插件后台进行设置。<br><br>论坛端插件有图文并茂的安装说明文档，参考安装即可。<br><br>ServU端插件的安装：<br>bbsftp&nbsp;2.1&nbsp;提供了servu端插件的安装程序，直接执行安装即可。<br><br>下载地址：<a href="http://www.redcheek.net/bbsftp">http://www.redcheek.net/bbsftp</a><br>&nbsp;<br>
<img src ="http://www.phpweblog.net/rick/aggbug/213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-20 20:37 <a href="http://www.phpweblog.net/rick/archive/2006/07/20/213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FTP Web浏览※搜索引擎 V1.1 php 版  </title><link>http://www.phpweblog.net/rick/archive/2006/07/20/212.html</link><dc:creator>紫雨轩 PHP</dc:creator><author>紫雨轩 PHP</author><pubDate>Thu, 20 Jul 2006 12:35:00 GMT</pubDate><guid>http://www.phpweblog.net/rick/archive/2006/07/20/212.html</guid><wfw:comment>http://www.phpweblog.net/rick/comments/212.html</wfw:comment><comments>http://www.phpweblog.net/rick/archive/2006/07/20/212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/rick/comments/commentRss/212.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/rick/services/trackbacks/212.html</trackback:ping><description><![CDATA[2006.5.28&nbsp;V1.1<br>1.管理程序服务程序更新。优化了索引更新程序。<br>2.修正了个人版管理程序的bug。<br>3.修正了FTP容量统计不正确的bug。<br>4.PHP版web程序更新。修正中文文件名的连接用下载工具下载时乱码的bug。<br>5.修正了Web界面文件大小，FTP容量大小显示bug。<br><br><a href="http://www.redcheek.net/bbsftp" target=_blank>http://www.redcheek.net/bbsftp</a><br><br><font face=Tahoma>于Web的 Ftp 文件搜索 和 ftp 内容浏览,支持多个FTP</font> 
<img src ="http://www.phpweblog.net/rick/aggbug/212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/rick/" target="_blank">紫雨轩 PHP</a> 2006-07-20 20:35 <a href="http://www.phpweblog.net/rick/archive/2006/07/20/212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>