<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://miaomin.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fmiaomin.spaces.live.com%2fcategory%2fPHP__xa5%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>苗苗 合作 交流: PHP/</title><description /><link>http://miaomin.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catPHP__xa5</link><language>en-US</language><pubDate>Mon, 03 Sep 2007 03:40:18 GMT</pubDate><lastBuildDate>Mon, 03 Sep 2007 03:40:18 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://miaomin.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-8913911617972053559</live:id><live:alias>miaomin</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>PHP-有关邮件发送</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!336.entry</link><description>邮件发送是Web开发中经常用到的一项功能，PHP对邮件发送提供了很成熟的技术支持。不仅内置了mail函数（需要服务器端有SendMail、Qmail、Imail等邮件服务组件的支持），而且在PEAR中也提供有Mail组件，供调用Socket接口完成邮件发送的工作。从实际使用的情况来看，通过SendMail组件发出的邮件，非常容易被一些大的邮件服务商误以为SPAM而遭到拒收。所以现在一般的邮件发送都是通过调用Soket接口，完成发送功能。&lt;br&gt;&lt;br&gt;Pear::Mail的使用方法介绍&lt;br&gt;&lt;br&gt;&amp;lt;?php&lt;br&gt;   require_once(' pear/Mail/smtp.php');&lt;br&gt;&lt;br&gt;   $params = array('host'=&amp;gt;'smtp.mailserver.addreess',    //SMTP服务器地址，如smtp.citiz.net&lt;br&gt;                               'auth'=&amp;gt;true,      //SMTP服务器是否需要安全认证；&lt;br&gt;                               'username'=&amp;gt;'admin',    //邮件发送者用户名；&lt;br&gt;                               'password'=&amp;gt;'123456');    //邮件发送者密码；&lt;br&gt;&lt;br&gt;   $header = array('Subject'=&amp;gt;'Hello, You have a new mail.',    //邮件主题&lt;br&gt;                               'BCC'=&amp;gt;'',    //密抄&lt;br&gt;                               'From'=&amp;gt;Mr.Smith.'&amp;lt;'.smith@sample.com.'&amp;gt;',    //邮件发送者信息&lt;br&gt;                               'MIME-Version'=&amp;gt;'1.0',&lt;br&gt;                               'Content-type'=&amp;gt;'text/plain:charset=&amp;quot;gb2312&amp;quot;');     //字符编码选择；&lt;br&gt;   &lt;br&gt;   $content = 'This is mail content... ... ';&lt;br&gt;   $sendmail = new Mail_smtp($params);&lt;br&gt;   $result = $sendmail-&amp;gt;send('receiver@mailaddress',$header,$content);    &lt;br&gt;   if ($result) {&lt;br&gt;       echo &amp;quot;You have  succeeded send a message.&amp;quot;;&lt;br&gt;   }else{&lt;br&gt;       print_r($result);&lt;br&gt;       die();&lt;br&gt;   }&lt;br&gt;?&amp;gt;&lt;br&gt;通过这样几句简单的代码，我们就可以实现一封邮件的发送。从代码中可以看出，主要的配置信息在变量$params和变量$header中，$params主要保存用于发送邮件的SMTP服务器的基本信息，$header则存放这封邮件的Header信息。一份电子邮件所包含完整的Header信息如下：&lt;br&gt;&lt;br&gt;&lt;pre&gt; Message-Id: &amp;lt;44F6F28F.1030906@sample.com&amp;gt;&lt;br&gt; Date: Thu, 31 Aug 2006 23:30:39 +0800&lt;br&gt; From: Nickname &amp;lt;username@sample.com&amp;gt;&lt;br&gt; User-Agent: Thunderbird 1.5.0.2 (Windows/20060308)&lt;br&gt; MIME-Version: 1.0&lt;br&gt; To: mail-list@sample.com&lt;br&gt; Subject: This is a test.&lt;br&gt; BCC:&lt;br&gt; Content-Type: text/plain; charset=ISO-8859-1&lt;br&gt; Content-Transfer-Encoding: 7bit&lt;br&gt; Status: RO&lt;br&gt; Content-Length: 819&lt;br&gt; Lines: 45&lt;/pre&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP-%e6%9c%89%e5%85%b3%e9%82%ae%e4%bb%b6%e5%8f%91%e9%80%81&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!336.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!336.entry</guid><pubDate>Wed, 01 Nov 2006 08:18:06 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!336/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!336.entry#comment</wfw:comment><dcterms:modified>2006-11-07T06:55:29Z</dcterms:modified></item><item><title>看到现在最好的一篇介绍PHP类和对象的文章</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!320.entry</link><description>&lt;a href="http://www-128.ibm.com/developerworks/cn/opensource/os-phpobj/"&gt;http://www-128.ibm.com/developerworks/cn/opensource/os-phpobj/&lt;/a&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e7%9c%8b%e5%88%b0%e7%8e%b0%e5%9c%a8%e6%9c%80%e5%a5%bd%e7%9a%84%e4%b8%80%e7%af%87%e4%bb%8b%e7%bb%8dPHP%e7%b1%bb%e5%92%8c%e5%af%b9%e8%b1%a1%e7%9a%84%e6%96%87%e7%ab%a0&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!320.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!320.entry</guid><pubDate>Fri, 26 May 2006 06:44:08 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!320/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!320.entry#comment</wfw:comment><dcterms:modified>2006-05-26T06:44:52Z</dcterms:modified></item><item><title>PHP程序员的优化调试技术和技巧(4)</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!296.entry</link><description>&lt;b&gt;使用调试器&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　使用调试器，可以设置断点并查看 PHP 代码到所设断点之前的浏览器输出。然后可以继续代码的执行并查看到下一断点之前的浏览器输出，然后再到下一个，直到 PHP 脚本完成。&lt;br&gt;&lt;br&gt;　　现在把 “设置” 一节中在 php.ini 中注释掉的行取消注释，并重新启动 Apache。现在装入了调试器，Eclipse 能够和它挂上了。&lt;br&gt;&lt;br&gt;　　现在在 Eclipse 中设计调试环境。请创建新的 test4.php 文件，先保持为空。现在单击 &lt;b&gt;Run &amp;gt; Debug&lt;/b&gt;。在左侧面板中选择 PHP DBG Script，并单击 &lt;b&gt;New&lt;/b&gt;。现在转到 &lt;b&gt;File&lt;/b&gt; 选项卡，输入当前项目 &lt;b&gt;debugArticle&lt;/b&gt; 以及想要调试的文件 &lt;b&gt;test4.php&lt;/b&gt;。现在转到 &lt;b&gt;Environment&lt;/b&gt; 选项卡，然后再到 &lt;b&gt;Interpreter&lt;/b&gt; 子选项卡。在 PHP 的安装目录中找到 php.exe 文件（我的是 c:\apps\php5.0.3\php.exe）。现在单击 &lt;b&gt;Remote Debug&lt;/b&gt; 子选项卡，选择 &lt;b&gt;Remote Debug&lt;/b&gt;，
如果没有使用 Windows，请取消 “Open with DBGSession URL in internal browser box”
复选框。把 Remote Source 路径设置成与要测试的 PHP 脚本的绝对路径（不是 Web 路径）相同（我的设置是
c:\www\debugArticle\test4.php）。现在单击 &lt;b&gt;Debug&lt;/b&gt;。&lt;br&gt;&lt;br&gt;　　现在应当装入 Debug 透视图，如图 8 所示。否则，请单击 &lt;b&gt;Window &amp;gt; Open Perspective &amp;gt; Other&lt;/b&gt;，并选择 &lt;b&gt;Debug&lt;/b&gt;。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 8. Eclipse 中的 Debug 透视图&lt;/b&gt;&lt;br&gt;&lt;img alt="点击查看全图 http://www.utf.com.cn/article/UploadFile/200602/260748280.jpg" src="http://www.utf.com.cn/article/UploadFile/200602/260748280.jpg" height=530 width=540&gt;&lt;br&gt;&lt;br&gt;　　现在可以设置断点了。&lt;br&gt;&lt;br&gt;　　对于本文中使用的插件和扩展的版本，断点功能是必需的，因为 PHP 在把输出发送到浏览器之前会缓冲它。除此之外，需要做的不仅仅是设置一个断点把当前显示数据刷新到 Web 浏览器，所以要像下面和图 8 所示那样定义 test4.php。&lt;br&gt;&lt;br&gt;&lt;b&gt;清单 4. 设置和创建断点&lt;/b&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;&amp;lt;?php &lt;br&gt;function break-point(){ &lt;br&gt;    ob_flush(); &lt;br&gt;    flush(); &lt;br&gt;    sleep(.1); &lt;br&gt;    debugBreak(); &lt;br&gt;} &lt;br&gt;print(&amp;quot;This will get shown first, &amp;quot;); &lt;br&gt;print(&amp;quot;as will this&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt;breakpoint(); &lt;br&gt;print(&amp;quot;This won’t get shown until after &amp;quot;); &lt;br&gt;print(&amp;quot;continuing the break-point&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt;breakpoint(); &lt;br&gt;print(&amp;quot;END!&amp;quot;); &lt;br&gt;? &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　breakpoint() 函数会把缓冲的输出和其他缓冲的数据刷新到
Web 浏览器。对 sleep(.1) 的调用是必需的，这样代码中止于 debugBreak() 之前，服务器才有足够的时间把数据刷新到
Web 浏览器，这个函数是前面下载的 PHP 调试器扩展的内部函数。这样，调用 breakpoint() 会把 HTML 块、print()
和 echo() 语句的数据刷新到浏览器，然后中止代码执行。&lt;br&gt;&lt;br&gt;　　在像清单 4 那样编写完代码之后，可以打开浏览器并指向 test4.php，或者可以查看 PHP 浏览器窗口（我的是 &lt;a href="http://localhost/debugArticle/test4.php"&gt;http://localhost/debugArticle/test4.php&lt;/a&gt;）。每次输入和保存文件时，在 PHP 浏览器窗口中就已经启动了调试序列。如果不使用 Windows，请通过浏览器查看 test4.php。在保存了文件之后，用 &lt;b&gt;F8&lt;/b&gt; 或单击 &lt;b&gt;Run &amp;gt; Resume&lt;/b&gt; 继续代码执行。持续这么做，直到最后一行输出是 END! 为止（参见图 9、10 和 11）。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 9. 初始的到第一个断点的 PHP 浏览器输出&lt;/b&gt;&lt;br&gt;&lt;img alt="初始的到第一个断点的 PHP 浏览器输出" src="http://www.utf.com.cn/article/UploadFile/200602/260748291.jpg" height=538 width=572&gt;&lt;br&gt;&lt;br&gt;　　请注意图 9 中的 Debug 窗口如何把执行显示为挂起的。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 10. 第一个断点之后到第二个断点之前的 PHP 浏览器输出&lt;/b&gt;&lt;br&gt;&lt;img alt="第一个断点之后到第二个断点之前的 PHP 浏览器输出" src="http://www.utf.com.cn/article/UploadFile/200602/260748322.jpg" height=564 width=600&gt;&lt;br&gt;&lt;br&gt;　　图 10 的 Debug 窗口仍然把执行显示为挂起，而第二组数据显示在 PHP 浏览器中。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 11. 完整的 PHP 浏览器输出&lt;/b&gt;&lt;br&gt;&lt;img alt="完整的 PHP 浏览器输出" src="http://www.utf.com.cn/article/UploadFile/200602/260748343.jpg" height=538 width=572&gt;&lt;br&gt;&lt;br&gt;　　注意，图 11 的 Debug 窗口中的代码不再挂起，整个脚本已经执行，如图 11 中的 PHP 浏览器所示。&lt;br&gt;&lt;br&gt;　　既然已经看到了用 PHPEclipse 和调试器扩展进行开发的优势，那么很难想像没有它会怎么样。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;结束语&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　现在已经向 PHP 的调试技术集中添加了错误报告的运用、print 语句、PHPEclipse 和调试器扩展，您可以通过减少每行代码的错误数量，成为更有效的 PHP 编码人员。请参阅 &lt;a href="http://www-128.ibm.com/developerworks/cn/opensource/os-debug/#resources"&gt;参考资料&lt;/a&gt; 获得一些 PHP 教程，可以在上面测试这些新技能。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e4%bc%98%e5%8c%96%e8%b0%83%e8%af%95%e6%8a%80%e6%9c%af%e5%92%8c%e6%8a%80%e5%b7%a7(4)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!296.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!296.entry</guid><pubDate>Mon, 03 Apr 2006 07:17:07 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!296/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!296.entry#comment</wfw:comment><dcterms:modified>2006-04-03T07:17:07Z</dcterms:modified></item><item><title>PHP程序员的优化调试技术和技巧(3)</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!295.entry</link><description>&lt;b&gt;使用 PHPEclipse&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　您可能用过 Eclipse，但是可能不熟悉它。请参阅 &lt;a href="http://www-128.ibm.com/developerworks/cn/opensource/os-debug/#resources"&gt;参考资料&lt;/a&gt; 获得 Eclipse 平台的介绍。&lt;br&gt;&lt;br&gt;　　用于 Eclipse 的 PHPEclipse 插件是用来开发 PHP 应用程序的一个流行工具。请启动 Eclipse 并把工作区目录指定为 Apache 的 www 目录（在我的机器上是 c:\www）。现在单击 &lt;b&gt;File &amp;gt; New &amp;gt; Project&lt;/b&gt;。会弹出 New Project 向导。双击 PHP 文件夹并选择 PHP Project。单击 &lt;b&gt;Next&lt;/b&gt;，输入项目名称 debugArticle，并单击 &lt;b&gt;Finish&lt;/b&gt;。&lt;br&gt;&lt;br&gt;　　如果把 Web 服务器设置为在端口 80 上侦听，那么不需要做任何修改。否则，请转到 Navigator 窗口，在 PHP 项目 &lt;b&gt;debugArticle&lt;/b&gt; 上右击，选择 Properties，然后单击 &lt;b&gt;PHP Project Settings&lt;/b&gt;。单击 &lt;b&gt;Configure Workspace Settings&lt;/b&gt; 然后修改合适的 localhost 或者添加 Web 服务器侦听的端口（例如 &lt;a href="http://localhost:8080/"&gt;http://localhost:8080&lt;/a&gt;）。单击 &lt;b&gt;Apply&lt;/b&gt; 完成设置。&lt;br&gt;&lt;br&gt;　　Navigator 窗口应当显示项目和一个 .project 文件。在项目上右击，就像前面做的那样，只是这次选择 &lt;b&gt;New &amp;gt; PHP File&lt;/b&gt;。用想要创建的 PHP 文件的名称 test3.php 替换 *.php，然后单击 &lt;b&gt;Finish&lt;/b&gt;。在 Eclipse IDE 中应当出现一个新文件。可能需要导航到窗口底部的 PHP 浏览器来查看 PHP 文件的当前输出（参见图 5）。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 5. Eclipse 的 PHPEclipse 插件&lt;/b&gt;&lt;br&gt;&lt;img alt="点击查看全图 http://www.utf.com.cn/article/UploadFile/200602/260739030.jpg" src="http://www.utf.com.cn/article/UploadFile/200602/260739030.jpg" height=322 width=540&gt;&lt;br&gt;&lt;br&gt;　　注意，只有 Windows? 的用户可以像清单 5 所示的那样使用 PHP 浏览器。通过打开独立浏览器窗口并把浏览器指向测试脚本所在目录，也可以使用同样的功能。&lt;br&gt;&lt;br&gt;　　现在来演示这个应用程序，证明它的强大能力。&lt;br&gt;&lt;br&gt;　　在 “使用调试器” 一节中，将学习如何用 Eclipse、PHPEclipse 和前面下载的调试器 PHP 扩展来调试 PHP 应用程序。先从学习如何使用它的语法解析功能开始。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;语法解析和加下划线&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　先从查看 PHPEclipse 如何提供帮助调试 PHP 应用程序的实时语法解析功能开始。要看这个特性的实际应用，先从在 Eclipse 中定义 test3.php 开始，如下所示。&lt;br&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td height=61&gt;&lt;pre&gt; &lt;br&gt;&amp;lt;?php &lt;br&gt;print(,&amp;quot;Hello World!&amp;quot;); &lt;br&gt;?&amp;gt; &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　注意，在清单 4 中加下划线的两个字符在 Eclipse 中加了下划线，提示语法不正确。按 &lt;b&gt;Ctrl+S&lt;/b&gt; 保存文件，会在 Eclipse 中显示解析错误：在代码中与解析错误对应的行上会加上红 “x”，如图 6 所示。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 6. 语法错误强调&lt;/b&gt;&lt;br&gt;&lt;img alt="语法错误强调" src="http://www.utf.com.cn/article/UploadFile/200602/260739151.jpg" height=322 width=572&gt;&lt;br&gt;&lt;br&gt;　　现在演示 PHP 浏览器。这个窗口提供了当前 PHP 脚本的预览，如图 6 所示。&lt;br&gt;&lt;br&gt;　　从上面定义的 test3.php 中删除逗号（,）。按 &lt;b&gt;Ctrl+S&lt;/b&gt; 保存文件，然后观察 PHP 浏览器窗口的更新，显示了 Hello World（参见图 7）。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 7. 在 PHPEclipse 中预览 PHP 脚本&lt;/b&gt;&lt;br&gt;&lt;img alt="在 PHPEclipse 中预览 PHP 脚本" src="http://www.utf.com.cn/article/UploadFile/200602/260739222.jpg" height=322 width=572&gt;&lt;br&gt;&lt;br&gt;　　下面是用调试器在 PHP 中设置断点。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e4%bc%98%e5%8c%96%e8%b0%83%e8%af%95%e6%8a%80%e6%9c%af%e5%92%8c%e6%8a%80%e5%b7%a7(3)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!295.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!295.entry</guid><pubDate>Mon, 03 Apr 2006 07:16:08 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!295/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!295.entry#comment</wfw:comment><dcterms:modified>2006-04-03T07:16:08Z</dcterms:modified></item><item><title>PHP程序员的优化调试技术和技巧(2)</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!294.entry</link><description>&lt;b&gt;测试错误报告&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　如果启动了错误报告，会节约许多时间。PHP 中的错误会指向代码中的错误。请创建一个简单的 PHP 文件 test.php，并像清单 1 所示一样定义它。&lt;br&gt;&lt;br&gt;&lt;b&gt;清单 1. 一个生成错误的简单 PHP&lt;/b&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;&amp;lt;?php &lt;br&gt;print(&amp;quot;The next line generates an error.&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt;printaline(&amp;quot;PLEASE?&amp;quot;); &lt;br&gt;print(&amp;quot;This will not be displayed due to the above error.&amp;quot;); &lt;br&gt;?&amp;gt; &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　第一个 print() 语句会向 Web 浏览器显示它的内容。但是第二个语句会生成错误并在 Web 页面上显示。这造成最后一个 print() 语句不起作用，如图 1 所示。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 1. 生成错误&lt;/b&gt;&lt;br&gt;&lt;img alt="点击查看全图 http://www.utf.com.cn/article/UploadFile/200602/260736430.jpg" src="http://www.utf.com.cn/article/UploadFile/200602/260736430.jpg" height=271 width=540&gt;&lt;br&gt;&lt;br&gt;　　现在开启了错误报告！接下来，用 print 语句帮助调试应用程序。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;介绍 print 语句&lt;/b&gt;&lt;br&gt;&lt;br&gt;　
　因为应用程序中的功能性 bug 不会产生错误，所以在所有调试策略中，关于如何正确地放置和使用 print 或 die 语句来调试 PHP 应用
程序的知识是一种很好的资产。可以用 print 语句在代码中缩小对问题语句的定位，这些语句在语法上没有错误，也不是 bug，但是从代码的功能上看
是 bug。这些是最难发现和调试的 bug，因为它们不会抛出错误。惟一知道的就是在浏览器上显示的内容不是想要的内容，或者想要保存在数据库中的内容
根本没有保存。&lt;br&gt;&lt;br&gt;　　假设正在处理通过 GET 请求发送过来的表单数据，想向浏览器显示信息，但是出于某种原因，数据没有正确地提交，或者不能正确地从 GET 请求中读出。要调试这类问题，重要的是用 print() 或 die() 语句知道变量的值是什么。&lt;br&gt;&lt;br&gt;　　die() 语句会中止程序执行，并在 Web 浏览器上显示文本。如果不想注释掉代码，而且只想显示到出错之前的信息和出错信息，不想显示后面的信息，那么 die() 语句特别有用。&lt;br&gt;&lt;br&gt;　　让我们在 PHP 中用 print 语句来测试这个概念&lt;br&gt;&lt;br&gt;　　&lt;b&gt;使用 print 语句进行调试&lt;/b&gt;&lt;br&gt;&lt;br&gt;　
　在我作程序员的那些时候，当我在 Linux? 上开发应用程序时，没有方便的 GUI 可以告诉我 bug 在哪，我迅速地发现我在程序中放的
 print 语句越多，我在应用程序中把 bug 的范围缩小到一行的机会越大。请创建另一个 PHP 文件 test2.php，并像清单 2 所示
的那样定义它。&lt;br&gt;&lt;br&gt;&lt;b&gt;清单 2. 显示通过 GET 提交的所有变量&lt;/b&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;&amp;lt;?php &lt;br&gt; $j = &amp;quot;&amp;quot;; &lt;br&gt; print(&amp;quot;Lets retrieve all the variables submitted to this &amp;quot;); &lt;br&gt; print(&amp;quot;script via a GET request:&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt; foreach($_GET as $key =&amp;gt; $i){ &lt;br&gt;     print(&amp;quot;$key=$j&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt; } &lt;br&gt; if($_GET[’Submit’] == &amp;quot;Send GET Request&amp;quot;) &lt;br&gt;     $j = &amp;quot;done!&amp;lt;br&amp;gt;&amp;quot;; &lt;br&gt;?&amp;gt; &lt;br&gt;&amp;lt;form method=&amp;quot;GET&amp;quot;&amp;gt; &lt;br&gt;     Name: &amp;lt;input name=&amp;quot;name&amp;quot;&amp;gt;&amp;lt;br&amp;gt; &lt;br&gt;     Email: &amp;lt;input name=&amp;quot;email&amp;quot; size=&amp;quot;25&amp;quot;&amp;gt;&amp;lt;br&amp;gt; &lt;br&gt;     &amp;lt;input name=&amp;quot;Submit&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Send GET Request&amp;quot;&amp;gt; &lt;br&gt;&amp;lt;/form&amp;gt; &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　您可能会非常容易地发现清单 2 中的 bug！您很棒！但请注意这是一
个非常简单的脚本，只是作为使用 print 语句进行调试而展示的一个例子而已。这个脚本只是提取 GET 请求中的所有变量，如果有，就把它们显示在
浏览器上。还提供了一个表单，用 GET 请求向服务器发送变量以进行测试。请看输出，如图 2 所示。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 2. test2.php 的输出&lt;/b&gt;&lt;br&gt;&lt;img alt="test2.php 的输出" src="http://www.utf.com.cn/article/UploadFile/200602/260736451.jpg" height=264 width=572&gt;&lt;br&gt;&lt;br&gt;　　现在单击 &lt;b&gt;Send GET Request&lt;/b&gt; 按钮，请注意只有 $_GET 请求的键显示在浏览器上，而正确的值都没显示。可以在循环中放一个 print 语句，检验在 foreach 循环中每个元素中是否确实存在数据。请参阅清单 3。&lt;br&gt;&lt;br&gt;&lt;b&gt;清单 3. 用 print 语句验证代码的功能&lt;/b&gt;&lt;br&gt;&lt;table bgcolor="#eeeeee" border=1 cellpadding=5 cellspacing=0 width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;... &lt;br&gt; foreach($_GET as $key =&amp;gt; $i){ &lt;br&gt;     print(&amp;quot;Correct data? &amp;quot; . $_GET[$key] . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt;     print(&amp;quot;$key=$j&amp;lt;br&amp;gt;&amp;quot;); &lt;br&gt; } &lt;br&gt;... &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　放进去的 print 语句是粗体。注意，现在已经知道在 Web 浏览器上显示的 $key 值是正确的，但是由于某些原因，值没有正确地显示。请看新的输出，如图 3 所示。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 3. 修改后的 test2.php 的输出&lt;/b&gt;&lt;br&gt;&lt;img alt="修改后的 test2.php 的输出" src="http://www.utf.com.cn/article/UploadFile/200602/260736472.jpg" height=305 width=572&gt;&lt;br&gt;&lt;br&gt;　
　现在已经知道应用程序正确地从 GET 请求接收到了变量，那么肯定是在代码中有 bug。查看之后注意到，用来显示值的变量 $j 是错误的。在
 foreach 语句中指定的是 $i，所以它肯定会有正确的值，但是无意之中输入了 $j。所以通过把 $j 替换成 $i，迅速地修正了错误，重新
载入页面之后，就看到了正确的输出，如图 4 所示。&lt;br&gt;&lt;br&gt;&lt;b&gt;图 4. 修正后的 test2.php 的输出&lt;/b&gt;&lt;br&gt;&lt;img alt="修正后的 test2.php 的输出" src="http://www.utf.com.cn/article/UploadFile/200602/260736533.jpg" height=310 width=572&gt;&lt;br&gt;&lt;br&gt;　
　现在可以删除或注释掉刚才添加的 print 语句了，因为已经发现了代码中的 bug。注意，这只是在调试应用程序时可能遇到的许多错误中的一个很小
的子集。对于使用数据库时可能遇到的问题，一个好的解决方案是输出 SQL 语句，以确保执行的 SQL 就是想要执行的。&lt;br&gt;&lt;br&gt;　　现在要来看看如何使用 Eclipse IDE 和 PHPEclipse 插件及调试器扩展进一步在调试历程中提供帮助。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e4%bc%98%e5%8c%96%e8%b0%83%e8%af%95%e6%8a%80%e6%9c%af%e5%92%8c%e6%8a%80%e5%b7%a7(2)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!294.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!294.entry</guid><pubDate>Mon, 03 Apr 2006 07:14:58 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!294/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!294.entry#comment</wfw:comment><dcterms:modified>2006-04-03T07:14:58Z</dcterms:modified></item><item><title>PHP程序员的优化调试技术和技巧(1)</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!293.entry</link><description>本文介绍调试 PHP 应用程序的各种方法，包括在 Apache and PHP 中打开错误报告，以及通过在一个简单的 PHP 脚本中放置策略性的
 print 语句，找到更困难的 bug 的源头。还会介绍用于 Eclipse 的 PHPEclipse 插件，这是一个灵活的开发环境，具有实时
语法解析能力，还会介绍 PHPEclipse 的 DBG 调试器扩展。 &lt;br&gt;&lt;br&gt;　　&lt;b&gt;简介&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　有许多
 PHP 调试技术可以在编码的时候节约大量时间。一个有效却很基本的调试技术就是打开错误报告。另一个略微高级一点的技术包括使用 print 语句，
通过显示在屏幕上实际出现的内容，有助于精确地找出更难发现的 bug。PHPEclipse 是一个 Eclipse 插件，能够强调常见的语法错误，
可以与调试器结合起来用于设置断点。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;设置&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　要学习本文描述的概念，需要 PHP、Web 服务器和 Eclipse。调试器扩展支持的 PHP 版本是 V5.0.3。 &lt;br&gt;&lt;br&gt;　　我们需要一个 Web 服务器来解析用 PHP 创建的页面并把它们显示到浏览器。本文中使用的是 Apache2。但是，任何 Web 服务器都可以满足要求。 &lt;br&gt;&lt;br&gt;　　要利用本文中介绍的一些调试技术，需要安装 Eclipse V3.1.1 和插件 PHPEclipse V1.1.8。由于 Eclipse 要求 Java? 技术，所以还要下载它。 &lt;br&gt;&lt;br&gt;　　还需要 PHP 的调试器扩展模块。安装它略有些麻烦。请仔细跟随安装调试器扩展的操作说明。现在，先在 php.ini 文件中注释掉那些要求装入和配置 PHP 扩展的行。在需要使用调试器的时候，再取消注释。&lt;br&gt;&lt;br&gt;　　请参阅 &lt;a href="http://www-128.ibm.com/developerworks/cn/opensource/os-debug/#resources"&gt;参考资料&lt;/a&gt; 获得下载信息。现在介绍出错消息。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;出错消息&lt;/b&gt;&lt;br&gt;&lt;br&gt;　
　出错消息是作为开发人员的第一道防线。谁都不想在一台没有配置成显示出错消息的服务器上用 PHP 开发代码。但是，请记住，当代码调试完成，准备运行
的时候，应当确保关闭了错误报告，因为不希望站点的访问者看到出错消息，因为这会给他们提供足够的信息来利用站点的弱点并黑掉站点。&lt;br&gt;&lt;br&gt;　　
也可以用出错消息为自己服务，因为它们会显示抛出或生成错误的正确代码行。这样，调试就变成在浏览器上查看生成的错误所显示的行号，并在代码中检查这一
行。稍后，将会看到 PHPEclipse 插件通过即时地给语法错误加下划线并在保存文件时用红色 “x” 标注语法错误，可在开发和调试过程中提供极
大的帮助。&lt;br&gt;&lt;br&gt;　　先来看如何在 php.ini 文件中开启错误报告并设置错误报告的级别。然后将学习如何在 Apache 的配置文件中覆盖这些设置。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;PHP 的错误报告&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中，就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样（请参阅 &lt;a href="http://www-128.ibm.com/developerworks/cn/opensource/os-debug/#resources"&gt;参考资料&lt;/a&gt;）。在调试 PHP 应用程序时，应当知道两个配置变量。下面是这两个变量及其默认值：&lt;br&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;display_errors = Off &lt;br&gt;error_reporting = E_ALL &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　通过在 php.ini 文件中搜索它们，可以发现这两个变量当前的默认值。display_errors 变量的目的很明显 —— 它告诉 PHP 是否显示错误。默认值是 Off。但是，要让开发过程更加轻松，请把这个值设为 On：&lt;br&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;display_errors = On &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　error_reporting 变量的默认值是 E_ALL。这个设置
会显示从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细，因为它在屏幕上为一些小事（例如变量未初始化）也显示提示，会
搞糟浏览器的输出。我只想看到错误和不良编码实践，但是不想看到无害的提示。所以，请用以下值代替 error_reporting 的默认值：&lt;br&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;error_reporting = E_ALL &amp;amp; ~E_NOTICE &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　重新启动 Apache，就全部设置好了。接下来，将学习如何在 Apache 上做同样的事。&lt;br&gt;&lt;br&gt;　　&lt;b&gt;服务器上的错误报告&lt;/b&gt;&lt;br&gt;&lt;br&gt;　
　依赖于 Apache 正在做的工作，在 PHP 中打开错误报告可能没法工作，因为在计算机上可能有多个 PHP 版本。有时很难区分
 Apache 正在使用哪个 PHP 版本，因为 Apache 只能查看一个 php.ini 文件。不知道 Apache 正在使用哪个
 php.ini 文件配置自己是一个安全问题。但是，有一种方法可以在 Apache 中配置 PHP 变量，从而保证设置了正确的出错级别。&lt;br&gt;&lt;br&gt;　　而且，最好知道如何在服务器端设置这些配置变量，以否决或抢占 php.ini 文件，从而提供更高级别的安全性。&lt;br&gt;&lt;br&gt;　　在配置 Apache 时，应该已经接触过 &amp;lt;apache2-install-dir&amp;gt;/conf/httpd.conf 中 http.conf 文件中的基本配置。&lt;br&gt;&lt;br&gt;　　要做在 php.ini 文件中已经做过的事，请把下列各行添加到 httpd.conf，覆盖任何 php.ini 文件：&lt;br&gt;&lt;br&gt;&lt;table bgcolor="#e3e3e3" border=1 bordercolor="#cccccc" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt; &lt;br&gt;php_flag  display_errors        on &lt;br&gt;php_value error_reporting       2039 &lt;br&gt;&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;　　这会覆盖在 php.ini 文件中为 display_errors 
已经设置的标志，以及 error_reporting 的值。值 2039 代表 E_ALL &amp;amp; ~E_NOTICE。如果愿意采用
 E_ALL，请把值设为 2047。同样，还是要重启 Apache。&lt;br&gt;&lt;br&gt;　　接下来，要在服务器上测试错误报告。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e4%bc%98%e5%8c%96%e8%b0%83%e8%af%95%e6%8a%80%e6%9c%af%e5%92%8c%e6%8a%80%e5%b7%a7(1)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!293.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!293.entry</guid><pubDate>Mon, 03 Apr 2006 07:12:26 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!293/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!293.entry#comment</wfw:comment><dcterms:modified>2006-04-03T07:12:26Z</dcterms:modified></item><item><title>PHPeclipse</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!291.entry</link><description>Official Website：&lt;a href="http://www.phpeclipse.de/"&gt;http://www.phpeclipse.de/&lt;/a&gt;&lt;br&gt;&lt;br&gt;一些有用的链接: &lt;br&gt;&lt;a href="http://club.phpe.net/index.php?act=ST&amp;amp;f=15&amp;amp;t=12506"&gt;http://club.phpe.net/index.php?act=ST&amp;amp;f=15&amp;amp;t=12506&lt;/a&gt;  &lt;a href="http://www-128.ibm.com/developerworks/cn/views/opensource/articles.jsp?view_by=search&amp;amp;search_by=Eclipse"&gt;http://www-128.ibm.com/developerworks/cn/views/opensource/articles.jsp?view_by=search&amp;amp;search_by=Eclipse&lt;/a&gt;&lt;br&gt;&lt;a href="http://blog.handsbrain.com/leezjs/archive/2005/07/25/9140.aspx"&gt;http://blog.handsbrain.com/leezjs/archive/2005/07/25/9140.aspx&lt;/a&gt;&lt;br&gt;&lt;a href="http://community.csdn.net/Expert/TopicView3.asp?id=4624589"&gt;http://community.csdn.net/Expert/TopicView3.asp?id=4624589&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;table style="table-layout:fixed" align=right border=0 cellpadding=2 cellspacing=2 width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;最近要汉化包的人好真多啊！看看下面的一些资料吧。&lt;br&gt;
//////////////////////////////////////////////////////////////////////////////////////////&lt;br&gt;
一.下载eclipse和其语言包 &lt;br&gt;
eclipse需要是3.0.1版本的，不要是3.0版本的，因为它和语言包不匹配。可以从eclipse的官方网站选择一个镜像站点&lt;a href="http://www.eclipse.org/downloads/index.php"&gt;http://www.eclipse.org/downloads/index.php&lt;/a&gt;下载，下面我发现下载速度比较快的站点。 &lt;br&gt;
eclipse &lt;br&gt;
&lt;a href="http://mirror.tiscali.dk/eclipse/downloads/drops/R-3.0.1-200409161125/eclipse-SDK-3.0.1-win32.zip"&gt;http://mirror.tiscali.dk/eclipse ... SDK-3.0.1-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="ftp://mirror.tiscali.dk/R-3.0.1-200409161125/eclipse-SDK-3.0.1-win32.zip"&gt;ftp://mirror.tiscali.dk/R-3.0.1- ... SDK-3.0.1-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/eclipse/R-3.0.1-200409161125/eclipse-SDK-3.0.1-win32.zip"&gt;ftp://sunsite.informatik.rwth-aa ... SDK-3.0.1-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.0.1-200409161125/eclipse-SDK-3.0.1-win32.zip"&gt;http://sunsite.informatik.rwth-a ... SDK-3.0.1-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="ftp://eclipse.openwebeng.com/R-3.0.1-200409161125/eclipse-SDK-3.0.1-win32.zip"&gt;ftp://eclipse.openwebeng.com/R-3 ... SDK-3.0.1-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="http://eclipse.openwebeng.com/downloads/drops/R-3.0.1-200409161125/eclipse-SDK-3.0.1-win32.zip"&gt;http://eclipse.openwebeng.com/do ... SDK-3.0.1-win32.zip&lt;/a&gt; &lt;br&gt;
语言包 &lt;br&gt;
&lt;a href="http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/L-3.0.1_Translations-200409161125/NLpack-eclipse-SDK-3.0.x-win32.zip"&gt;http://sunsite.informatik.rwth-a ... SDK-3.0.x-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="http://eclipse.cis.sinica.edu.tw/downloads/drops/L-3.0.1_Translations-200409161125/NLpack-eclipse-SDK-3.0.x-win32.zip"&gt;http://eclipse.cis.sinica.edu.tw ... SDK-3.0.x-win32.zip&lt;/a&gt; &lt;br&gt;
&lt;a href="http://eclipse.openwebeng.com/downloads/drops/L-3.0.1_Translations-200409161125/NLpack-eclipse-SDK-3.0.x-win32.zip"&gt;http://eclipse.openwebeng.com/do ... SDK-3.0.x-win32.zip&lt;/a&gt; &lt;br&gt;
二.安装eclipse和其语言包 &lt;br&gt;
环境要求：Java(TM) 2 SDK，建议使用使用比较新的版本，如1.4.2版本（我的计算机的环境是 Windows XP SP1，Java(TM) 2 SDK v1.4.2_04）。 &lt;br&gt;
首先解压Eclipse3.0.1到一个目录（这里我解压到I:\eclipse），然后把语言包NLpack-eclipse-SDK-3.0.x-
win32.zip也解压到I:\eclipse目录。然后双击此目录中的eclipse.exe文件即可打开eclipe。效果如下： &lt;br&gt;
注意： &lt;br&gt;
最好使用一个从未被启动过的Eclipse3.0.1，这样可以完全中文化。 &lt;br&gt;
如果在安装中文包时Eclipse已经被使用过，则可能会出现有部分内容不能被汉化，比如“搜索”、“运行”等菜单。如果中文化的不完全，把eclipse 目录下的configuration目录删除，重启即可。 &lt;br&gt;
也可以采用links方式安装这个语言包，可以参考 &lt;a href="http://blog.csdn.net/javamxj/archive/2004/10/11/132311.aspx"&gt;http://blog.csdn.net/javamxj/archive/2004/10/11/132311.aspx&lt;/a&gt; &lt;br&gt;
对于e文不好的人或者初学者来说，中文版本的eclipse可以显著提高学习效率，便于接受和使用eclipse。但是，毕竟当前先进的技术是英文一统天
下，所以，在对eclipse有了初步的认识之后，还是建议大家多使用英文版的eclipse，这样，对以后的进一步学习和使用有好处。

&lt;tr&gt;
&lt;td bgcolor="#eeeeee"&gt;作者: 刀客羽朋 发布日期: 
2006-2-20

&lt;tr&gt;
&lt;td&gt;Eclipse优点：免费、程序代码排版功能、有中文化包、可增  &lt;br&gt;
设许多功能强大的外挂、支持多种操作系统(Windows、  &lt;br&gt;
Linux、Solaris、Mac OSX)..等等。  &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Eclipse网站    &lt;a href="http://www.eclipse.org/"&gt;http://www.eclipse.org/&lt;/a&gt;&lt;br&gt;
(使用版本：Eclipse 2.1.2 Release + 中文化)  &lt;br&gt;
&lt;br&gt;
热键篇：  &lt;br&gt;
Template：Alt + /  &lt;br&gt;
修改处：窗口-&amp;gt;喜好设定-&amp;gt;工作台-&amp;gt;按键-&amp;gt;编辑-&amp;gt;内容辅助。  &lt;br&gt;
个人习惯：Shift+SPACE(空白)。  &lt;br&gt;
简易说明：编辑程序代码时，打sysout +Template启动键，就  &lt;br&gt;
会自动出现：System.out.println(); 。  &lt;br&gt;
设定Template的格式：窗口-&amp;gt;喜好设定-&amp;gt;Java-&amp;gt;编辑器-&amp;gt;模板。  &lt;br&gt;
&lt;br&gt;
程序代码自动排版：Ctrl+Shift+F  &lt;br&gt;
修改处：窗口-&amp;gt;喜好设定-&amp;gt;工作台-&amp;gt;按键-&amp;gt;程序代码-&amp;gt;格式。  &lt;br&gt;
个人习惯：Alt+Z。  &lt;br&gt;
自动排版设定：窗口-&amp;gt;喜好设定-&amp;gt;Java-&amp;gt;程序代码格式制作程序。  &lt;br&gt;
样式页面-&amp;gt;将插入tab(而非空格键)以内缩，该选项取消勾选  &lt;br&gt;
，下面空格数目填4，这样在自动编排时会以空格4作缩排。  &lt;br&gt;
&lt;br&gt;
快速执行程序：Ctrl + F11  &lt;br&gt;
个人习惯：ALT+X  &lt;br&gt;
修改处：窗口-&amp;gt;喜好设定-&amp;gt;工作台-&amp;gt;按键-&amp;gt;执行-&amp;gt;启动前一次的启动作业。  &lt;br&gt;
简易说明：第一次执行时，它会询问您执行模式，  &lt;br&gt;
设置好后，以后只要按这个热键，它就会快速执行。  &lt;br&gt;
..我觉得很顺手^___^  &lt;br&gt;
&lt;br&gt;
自动汇入所需要的类别：Ctrl+Shift+O  &lt;br&gt;
简易说明：  &lt;br&gt;
假设我们没有Import任何类别时，当我们在程序里打入：  &lt;br&gt;
&lt;br&gt;
BufferedReader buf =  &lt;br&gt;
new BufferedReader(new InputStreamReader(System.in));  &lt;br&gt;
&lt;br&gt;
此时Eclipse会警示说没有汇入类别，这时我们只要按下Ctrl+Shift+O  &lt;br&gt;
，它就会自动帮我们Import类别。  &lt;br&gt;
&lt;br&gt;
查看使用类别的原始码：Ctrl+鼠标左键点击  &lt;br&gt;
简易说明：可以看到您所使用类别的原始码。  &lt;br&gt;
&lt;br&gt;
将选取的文字批注起来：Ctrl+/  &lt;br&gt;
简易说明：Debug时很方便。  &lt;br&gt;
修改处：窗口-&amp;gt;喜好设定-&amp;gt;工作台-&amp;gt;按键-&amp;gt;程序代码-&amp;gt;批注  &lt;br&gt;
&lt;br&gt;
视景切换：Ctrl+F8  &lt;br&gt;
个人习惯：Alt+S。  &lt;br&gt;
修改处：窗口-&amp;gt;喜好设定-&amp;gt;工作台-&amp;gt;按键-&amp;gt;窗口-&amp;gt;下一个视景。  &lt;br&gt;
简易说明：可以方便我们快速切换编辑、除错等视景。  &lt;br&gt;
&lt;br&gt;
密技篇：  &lt;br&gt;
一套Eclipse可同时切换，英文、繁体、简体显示：  &lt;br&gt;
1.首先要先安装完中文化包。  &lt;br&gt;
2.在桌面的快捷方式后面加上参数即可，  &lt;br&gt;
英文-&amp;gt; -nl &amp;quot;zh_US&amp;quot;  &lt;br&gt;
繁体-&amp;gt; -nl &amp;quot;zh_TW&amp;quot;  &lt;br&gt;
简体-&amp;gt; -nl &amp;quot;zh_CN&amp;quot;。  &lt;br&gt;
(其它语系以此类推)  &lt;br&gt;
像我2.1.2中文化后，我在我桌面的Eclipse快捷方式加入参数-n1 &amp;quot;zh_US&amp;quot;。  &lt;br&gt;
&amp;quot;C:\Program Files\eclipse\eclipse.exe&amp;quot; -n &amp;quot;zh_US&amp;quot;  &lt;br&gt;
接口就会变回英文语系噜。  &lt;br&gt;
&lt;br&gt;
利用Eclipse，在Word编辑文书时可不必将程序代码重新编排：  &lt;br&gt;
将Eclipse程序编辑区的程序代码整个复制下来(Ctrl+C)，直接贴(Ctrl+V)到  &lt;br&gt;
Word或WordPad上，您将会发现在Word里的程序代码格式，跟Eclipse  &lt;br&gt;
所设定的完全一样，包括字型、缩排、关键词颜色。我曾试过JBuilder  &lt;br&gt;
、GEL、NetBeans...使用复制贴上时，只有缩排格式一样，字型、颜  &lt;br&gt;
色等都不会改变。  &lt;br&gt;
&lt;br&gt;
外挂篇：  &lt;br&gt;
外挂安装：将外挂包下载回来后，将其解压缩后，您会发现features、  &lt;br&gt;
plugins这2个数据夹，将里面的东西都复制或移动到Eclipse的features  &lt;br&gt;
、plugins数据夹内后，重新启动Eclipse即可。  &lt;br&gt;
&lt;br&gt;
让Eclipse可以像JBuilderX一样使用拖拉方式建构GUI的外挂：  &lt;br&gt;
1.Jigloo SWT/Swing GUI Builder ：  &lt;br&gt;
&lt;a href="http://cloudgarden.com/jigloo/index.html"&gt;http://cloudgarden.com/jigloo/index.html&lt;/a&gt; ; &lt;br&gt;
下载此版本：Jigloo plugin for Eclipse (using Java 1.4 or 1.5)  &lt;br&gt;
安装后即可由档案-&amp;gt;新建-&amp;gt;其它-&amp;gt;GUI Form选取要建构的GUI类型。  &lt;br&gt;
&lt;br&gt;
2.Eclipse Visual Editor Project：  &lt;br&gt;
&lt;a href="http://www.eclipse.org/vep/"&gt;http://www.eclipse.org/vep/&lt;/a&gt; ; &lt;br&gt;
点选下方Download Page，再点选Latest Release 0.5.0进入下载。  &lt;br&gt;
除了VE-runtime-0.5.0.zip要下载外，以下这2个也要：  &lt;br&gt;
EMF build 1.1.1: (build page) (download zip)  &lt;br&gt;
GEF Build 2.1.2: (build page) (download zip)  &lt;br&gt;
&lt;br&gt;
3.0 M8版本，请下载：  &lt;br&gt;
EMF build I200403250631  &lt;br&gt;
GEF Build I20040330  &lt;br&gt;
VE-runtime-1.0M1  &lt;br&gt;
&lt;br&gt;
安装成功后，便可由File-&amp;gt;New-&amp;gt;Visual Class开始UI设计。  &lt;br&gt;
安装成功后，即可由新建-&amp;gt;Java-&amp;gt;AWT与Swing里选择  &lt;br&gt;
所要建构的GUI类型开始进行设计。VE必须配合着对应  &lt;br&gt;
版本，才能正常使用，否则即使安装成功，使用上仍会  &lt;br&gt;
有问题。  &lt;br&gt;
&lt;br&gt;
使用Eclipse来开发JSP程序：  &lt;br&gt;
外挂名称：lomboz(下载页面)  &lt;br&gt;
&lt;a href="http://forge.objectweb.org/project/showfiles.php?group_id=97"&gt;http://forge.objectweb.org/project/showfiles.php?group_id=97&lt;/a&gt; ; &lt;br&gt;
请选择适合自己版本的lomboz下载，lomboz.212.p1.zip表示2.1.2版，  &lt;br&gt;
lomboz.3m7.zip表示M7版本....以此类推。  &lt;br&gt;
lomboz安装以及设置教学：  &lt;br&gt;
Eclipse开发JSP-教学文件  &lt;br&gt;
&lt;br&gt;
Java转exe篇：  &lt;br&gt;
实现方式：Eclipse搭配JSmooth(免费)。  &lt;br&gt;
1.先由Eclipse制作包含Manifest的JAR。  &lt;br&gt;
制作教学  &lt;br&gt;
2.使用JSmooth将做好的JAR包装成EXE。  &lt;br&gt;
JSmooth下载页面：  &lt;br&gt;
&lt;a href="http://jsmooth.sourceforge.net/index.php"&gt;http://jsmooth.sourceforge.net/index.php&lt;/a&gt; ; &lt;br&gt;
3.制作完成的exe文件，可在有装置JRE的Windows上执行。  &lt;br&gt;
&lt;br&gt;
Eclipse-Java编辑器最佳设定：  &lt;br&gt;
编辑器字型设定：工作台-&amp;gt;字型-&amp;gt;Java编辑器文字字型。  &lt;br&gt;
(建议设定Courier New -regular 10)  &lt;br&gt;
&lt;br&gt;
编辑器相关设定：窗口-&amp;gt;喜好设定-&amp;gt;Java-&amp;gt;编辑器  &lt;br&gt;
&lt;br&gt;
外观：显示行号、强调对称显示的方括号、强调显示现行行、  &lt;br&gt;
显示打印边距，将其勾选，Tab宽度设4，打印编距字段设80。  &lt;br&gt;
程序代码协助：采预设即可。  &lt;br&gt;
语法：可设定关键词、字符串等等的显示颜色。  &lt;br&gt;
附注：采预设即可。  &lt;br&gt;
输入：全部字段都勾选。  &lt;br&gt;
浮动说明：采预设即可。  &lt;br&gt;
导览：采预设即可。  &lt;br&gt;
&lt;br&gt;
使自动排版排出来的效果，最符合Java设计惯例的设定：  &lt;br&gt;
自动排版设定：窗口-&amp;gt;喜好设定-&amp;gt;Java-&amp;gt;程序代码制作格式。  &lt;br&gt;
&lt;br&gt;
换行：全部不勾选。  &lt;br&gt;
分行：行长度上限设：80。  &lt;br&gt;
样式：只将强制转型后插入空白勾选。  &lt;br&gt;
内缩空格数目：设为4。  &lt;br&gt;
&lt;br&gt;
Eclipse的教学文件：  &lt;br&gt;
Eclipse 3.0系列热键表 - 中英对照解说版 (by sungo) ~New~  &lt;br&gt;
Window+GCC+CDT用Eclipse开发C、C++ (by sungo) ~New~  &lt;br&gt;
&lt;br&gt;
其它：  &lt;br&gt;
扩充Eclipse的Java 开发工具(中文)  &lt;br&gt;
使用Eclipse开发J2EE 应用程序(中文)  &lt;br&gt;
使用Eclipse平台进行除错(中文)  &lt;br&gt;
用Eclipse进行XML 开发(中文)  &lt;br&gt;
开发Eclipse外挂程序(中文)  &lt;br&gt;
国际化您的Eclipse外挂程序(英文)  &lt;br&gt;
将Swing编辑器加入Eclipse(英文)  &lt;br&gt;
如何测试你的Eclipse plug-in符合国际市场需求(英文)  &lt;br&gt;
&lt;br&gt;
Eclipse的相关网站：  &lt;br&gt;
&lt;a href="http://eclipse-plugins.2y.net/eclipse/index.jsp"&gt;http://eclipse-plugins.2y.net/eclipse/index.jsp&lt;/a&gt; ; &lt;br&gt;
&lt;a href="http://www.eclipseplugincentral.com/"&gt;http://www.eclipseplugincentral.com/&lt;/a&gt; ;&lt;br&gt;&lt;br&gt;
//////////////////////////////////////////////////////////////////////////////////////////&lt;br&gt;phpeclips的安装.这段话比较简单.&lt;br&gt;
不翻译了.&lt;br&gt;
&lt;br&gt;
An automated installation of PHPEclipse is available via the Eclipse Update Manager. &lt;br&gt;
&lt;br&gt;
Click on Help-&amp;gt;Software Updates-&amp;gt;Find/Install from file menu in Eclipse. &lt;br&gt;
Select the radio button labeled, &amp;quot;search for new features to install&amp;quot;. &lt;br&gt;
Click on the &amp;quot;New Remote Site&amp;quot; button. &lt;br&gt;
Enter a name, and the URL: &lt;a href="http://download.pipestone.com/eclipse/updates/"&gt;http://download.pipestone.com/eclipse/updates/&lt;/a&gt; &lt;br&gt;
Click on &amp;quot;Finish&amp;quot;. &lt;br&gt;
A list of features will be presented, open the list and check the one labeled &amp;quot;phpeclipse&amp;quot;. &lt;br&gt;
Click on &amp;quot;Next&amp;quot; &lt;br&gt;
Follow the onscreen instructions to finish the automatic install. &lt;br&gt;
Note: There may be a problem during automatic installation, if you use
the &amp;quot;Install All&amp;quot; button during the Eclipse &amp;quot;Find/Install&amp;quot; feature. If
the installation stops with an &amp;quot;connection timed out&amp;quot; message (when
downloading additional files), close and restart Eclipse and use the
&amp;quot;Install&amp;quot; button instead of the &amp;quot;Install All&amp;quot; button - this will
require you to start the installation of the (currently) four packages
manually but resolves the problem. &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Fedora Core 4 (and above) Users: &lt;br&gt;
&lt;br&gt;
If clicking on Help-&amp;gt;Software Updates-&amp;gt;Find/Install commands
produces an error message like &amp;quot;Error creating feature
&amp;quot;file:/usr/share/eclipse/features/org.eclipse.rcp.source_3.1.1/&amp;quot;.
[/usr/share/eclipse/features/org.eclipse.rcp.source_3.1.1/feature.xml
(No such file or directory)]&amp;quot;, start Eclipse as root and try again.
(Once you're over this hurdle everything goes smoothly -- even as a
non-root user!)&lt;br&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHPeclipse&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!291.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!291.entry</guid><pubDate>Mon, 03 Apr 2006 06:50:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!291/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!291.entry#comment</wfw:comment><dcterms:modified>2006-04-03T06:50:48Z</dcterms:modified></item><item><title>allow_call_time_pass_reference报错修复一例</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!287.entry</link><description>今天一早发现测试服务器的论坛出错了，信息提示如下：&lt;br&gt;&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Call-time pass-by-reference has been deprecated - argument 
passed by value; If you would like to pass it by reference, modify the 
declaration of fsockopen(). If you would like to enable call-time 
pass-by-reference, you can set allow_call_time_pass_reference to true in your 
INI file. However, future versions may not support this any longer. in 
&lt;b&gt;/var/www/html/forum/class.Httpclient.php&lt;/b&gt; on line 
&lt;b&gt;560&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Call-time pass-by-reference has been 
deprecated - argument passed by value; If you would like to pass it by 
reference, modify the declaration of fsockopen(). If you would like to enable 
call-time pass-by-reference, you can set allow_call_time_pass_reference to true 
in your INI file. However, future versions may not support this any longer. in 
&lt;b&gt;/var/www/html/forum/class.Httpclient.php&lt;/b&gt; on line 
&lt;b&gt;560&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;table align=center border=0 cellpadding=0 cellspacing=0 width="70%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;br&gt;
&lt;tr&gt;
&lt;td align=center&gt;
&lt;div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;无法添加 Cookies,HTTP 头已经发送.&lt;br&gt;文件: 
/var/www/html/forum/class.Httpclient.php&lt;br&gt;行号: 560&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;经修改php.ini文件，将allow_call_time_pass_reference参数设置为On后，问题解决。&lt;br&gt;&lt;br&gt;&lt;dl&gt;&lt;dt&gt;从php手册中可以找到：&lt;dt&gt;&lt;a&gt;&lt;/a&gt;&lt;dt&gt;allow_call_time_pass_reference &lt;a href="http://blog.csdn.net/shimch/archive/2006/03/20/language.types.boolean.html"&gt;&lt;strong&gt;boolean&lt;/strong&gt;&lt;/a&gt; &lt;dd&gt;
&lt;p&gt;是否启用在函数调用时强制参数被按照引用传递。此方法已不被赞成并在 PHP/Zend
未来的版本中很可能不再支持。鼓励使用的方法是在函数定义中指定哪些参数应该用引用传递。鼓励大家尝试关闭此选项并确保脚本能够正常运行，以确保该脚本也
能在未来的版本中运行（每次使用此特性都会收到一条警告，参数会被按值传递而不是按照引用传递）。 
&lt;p&gt;在函数调用时通过引用传递参数是不推荐的，因为它影响到了代码的整洁。如果函数的参数没有声明作为引用传递，函数可以通过未写入文档的方法修改其参数。要避免其副作用，最好仅在函数声明时指定那个参数需要通过引用传递。
&lt;dt&gt;当allow_call_time_pass_reference=Off时&lt;dt&gt;&amp;lt;?php&lt;br&gt;function abc($a,$b){&lt;br&gt;    echo &amp;quot;$a\n&amp;quot;;&lt;br&gt;    echo &amp;quot;$b\n&amp;quot;;&lt;br&gt;    $b = 'cde';&lt;br&gt;}&lt;br&gt;&lt;br&gt;$a = 'abc';&lt;br&gt;$b = &amp;quot;bcd&amp;quot;;&lt;br&gt;&lt;dt&gt;//不好的用法，会引发一个php warnning&lt;br&gt;abc($a ,&amp;amp;$b);&lt;br&gt;&lt;br&gt;echo &amp;quot;$b\n&amp;quot;;&lt;br&gt;?&amp;gt;&lt;dd&gt;要想通过引用来传递参数$b，程序可改为&lt;/dl&gt;&amp;lt;?php&lt;br&gt;function abc($a,&amp;amp; $b){&lt;br&gt;    echo &amp;quot;$a\n&amp;quot;;&lt;br&gt;    echo &amp;quot;$b\n&amp;quot;;&lt;br&gt;    $b = 'cde';&lt;br&gt;}&lt;br&gt;&lt;br&gt;$a = 'abc';&lt;br&gt;$b = &amp;quot;bcd&amp;quot;;&lt;br&gt;//正确的用法&lt;br&gt;abc($a ,$b);&lt;br&gt;&lt;br&gt;echo &amp;quot;$b\n&amp;quot;;&lt;br&gt;//output is:&lt;br&gt;//abc&lt;br&gt;//bcd&lt;br&gt;//cde&lt;br&gt;?&amp;gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+allow_call_time_pass_reference%e6%8a%a5%e9%94%99%e4%bf%ae%e5%a4%8d%e4%b8%80%e4%be%8b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!287.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!287.entry</guid><pubDate>Mon, 03 Apr 2006 02:16:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!287/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!287.entry#comment</wfw:comment><dcterms:modified>2006-04-03T03:08:57Z</dcterms:modified></item><item><title>php文档生成类</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!272.entry</link><description>&lt;font color="#0000bb"&gt;&amp;lt;?php &lt;br&gt;&lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;*  类名: doc &lt;br&gt;*  描述: 文档生成类 &lt;br&gt;*  其他: 可以对目录进行过滤,设置好源目录后,请用绝对路径指定生成目录,模式可调,模式 &lt;br&gt;*  1为常规类型,即以  斜线**开头,以*斜线  结束 &lt;br&gt;*  2为扩展类型,凡是  斜线*开头以*斜线    结束的部分都将成为文档的一部分 &lt;br&gt;*/ &lt;br&gt;&lt;/font&gt;&lt;font color="#007700"&gt;class &lt;/font&gt;&lt;font color="#0000bb"&gt;doc &lt;br&gt;&lt;/font&gt;&lt;font color="#007700"&gt;{ &lt;br&gt;    var &lt;/font&gt;&lt;font color="#0000bb"&gt;$docdirname&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    var &lt;/font&gt;&lt;font color="#0000bb"&gt;$docdir&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   doc() &lt;br&gt;    *   函数功能:   构造 &lt;br&gt;    *   输入参数:   none &lt;br&gt;    *   函数返回值: 返回值说明 &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;doc&lt;/font&gt;&lt;font color="#007700"&gt;() &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;docdirname &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;doc/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   createDoc($root,$newdir,$mode=&amp;quot;1&amp;quot;,$filter=null) &lt;br&gt;    *   函数功能:   创建文档 &lt;br&gt;    *   输入参数:   $root -------------- 源目录 &lt;br&gt;                   $newdir ----------- 目标目录 &lt;br&gt;                   $mode ------------- 模式,1为普通,2为扩展 &lt;br&gt;                   $filter ------------ 过滤目录 &lt;br&gt;    *   函数返回值: 返回值说明 &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;createDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$newdir&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$mode&lt;/font&gt;&lt;font color="#007700"&gt;=&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;1&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter&lt;/font&gt;&lt;font color="#007700"&gt;=&lt;/font&gt;&lt;font color="#0000bb"&gt;null&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;loopDir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$i &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;0&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;createFrame&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$newdir&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        foreach(&lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr &lt;/font&gt;&lt;font color="#007700"&gt;as &lt;/font&gt;&lt;font color="#0000bb"&gt;$key&lt;/font&gt;&lt;font color="#007700"&gt;=&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;        { &lt;br&gt;            if(&lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getPhpFiles&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;)) &lt;br&gt;            { &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$content  &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getContent&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$content  &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$mode&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;setFilepath&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$newdir&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$filedir  &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getFileDir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;mkdirs&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$filedir&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;setDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$data&lt;/font&gt;&lt;font color="#007700"&gt;[&lt;/font&gt;&lt;font color="#0000bb"&gt;$i&lt;/font&gt;&lt;font color="#007700"&gt;][&lt;/font&gt;&lt;font color="#dd0000"&gt;'url'&lt;/font&gt;&lt;font color="#007700"&gt;] = &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;$filepath&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$data&lt;/font&gt;&lt;font color="#007700"&gt;[&lt;/font&gt;&lt;font color="#0000bb"&gt;$i&lt;/font&gt;&lt;font color="#007700"&gt;][&lt;/font&gt;&lt;font color="#dd0000"&gt;'name'&lt;/font&gt;&lt;font color="#007700"&gt;] = &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;$val&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$i&lt;/font&gt;&lt;font color="#007700"&gt;++; &lt;br&gt;            } &lt;br&gt;        } &lt;br&gt;        if(!empty(&lt;/font&gt;&lt;font color="#0000bb"&gt;$data&lt;/font&gt;&lt;font color="#007700"&gt;)) &lt;br&gt;        { &lt;br&gt;            &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;createMenu&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$newdir&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$data&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;            &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;redirect&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;docdir&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   redirect($path) &lt;br&gt;    *   函数功能:   转向 &lt;br&gt;    *   输入参数:   $path ---------------- 转向路径 &lt;br&gt;    *   函数返回值: 返回值说明 &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;redirect&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        echo &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;a href=&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot; target='_blank'&amp;gt;生成文档成功,点击此处查看&amp;lt;/a&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   loopDir($root,$filter=null) &lt;br&gt;    *   函数功能:   遍历目录 &lt;br&gt;    *   输入参数:   $root ------------------- 源目录 &lt;br&gt;                   $filter ----------------- 过滤 &lt;br&gt;    *   函数返回值: array &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;loopDir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter&lt;/font&gt;&lt;font color="#007700"&gt;=&lt;/font&gt;&lt;font color="#0000bb"&gt;null&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        static &lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr&lt;/font&gt;&lt;font color="#007700"&gt;=array(); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$d &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;dir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        while (&lt;/font&gt;&lt;font color="#0000bb"&gt;false &lt;/font&gt;&lt;font color="#007700"&gt;!== (&lt;/font&gt;&lt;font color="#0000bb"&gt;$entry &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$d&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;read&lt;/font&gt;&lt;font color="#007700"&gt;())) &lt;br&gt;        { &lt;br&gt;            if (&lt;/font&gt;&lt;font color="#0000bb"&gt;$entry &lt;/font&gt;&lt;font color="#007700"&gt;== &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;.&amp;quot; &lt;/font&gt;&lt;font color="#007700"&gt;|| &lt;/font&gt;&lt;font color="#0000bb"&gt;$entry &lt;/font&gt;&lt;font color="#007700"&gt;== &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;..&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;            { &lt;br&gt;                continue; &lt;br&gt;            } &lt;br&gt;            if(&lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;filter&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$entry&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter&lt;/font&gt;&lt;font color="#007700"&gt;)) &lt;br&gt;            { &lt;br&gt;                if(&lt;/font&gt;&lt;font color="#0000bb"&gt;is_dir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$entry&lt;/font&gt;&lt;font color="#007700"&gt;)) &lt;br&gt;                { &lt;br&gt;                    &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;loopDir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$d&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;path&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$entry&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                } &lt;br&gt;                else &lt;br&gt;                { &lt;br&gt;                    &lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr&lt;/font&gt;&lt;font color="#007700"&gt;[] = &lt;/font&gt;&lt;font color="#0000bb"&gt;$d&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;path&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$entry&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                } &lt;br&gt;            } &lt;br&gt;        } &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$d&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;close&lt;/font&gt;&lt;font color="#007700"&gt;(); &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   getPhpFiles($path) &lt;br&gt;    *   函数功能:   提取php文档 &lt;br&gt;    *   输入参数:   $path ---------------- 文档路径 &lt;br&gt;    *   函数返回值: bool &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;getPhpFiles&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$type &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;preg_replace&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;'/.*\.(.*[^\.].*)/i'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;'\\1'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$type &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;strtolower&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$type&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        if(&lt;/font&gt;&lt;font color="#0000bb"&gt;$type&lt;/font&gt;&lt;font color="#007700"&gt;==&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;php&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;        { &lt;br&gt;            Return &lt;/font&gt;&lt;font color="#0000bb"&gt;true&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        } &lt;br&gt;        else &lt;br&gt;        { &lt;br&gt;            Return &lt;/font&gt;&lt;font color="#0000bb"&gt;false&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   getContent($path) &lt;br&gt;    *   函数功能:   读取文件内容 &lt;br&gt;    *   输入参数:   $path ------------------- 文件路径 &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;getContent&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$fp &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;file&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$content &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;implode&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;''&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$fp&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   getDoc($content,$mode=&amp;quot;1&amp;quot;) &lt;br&gt;    *   函数功能:   取出php文件中的注释 &lt;br&gt;    *   输入参数:   $content ------------ 文档内容 &lt;br&gt;                   $mode --------------- 模式,1为普通,2为扩展 &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;getDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$mode&lt;/font&gt;&lt;font color="#007700"&gt;=&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;1&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        switch(&lt;/font&gt;&lt;font color="#0000bb"&gt;$mode&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;        { &lt;br&gt;            case &lt;/font&gt;&lt;font color="#dd0000"&gt;'1'&lt;/font&gt;&lt;font color="#007700"&gt;: &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$pattern &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;'/\/(\*)[\r\n].*\*\//isU'&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                break; &lt;br&gt;            case &lt;/font&gt;&lt;font color="#dd0000"&gt;'2'&lt;/font&gt;&lt;font color="#007700"&gt;: &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$pattern &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;'/\/\*.*\*\//isU'&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                break; &lt;br&gt;        } &lt;br&gt;&lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;preg_match_all&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$pattern&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$carr&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr &lt;/font&gt;&lt;font color="#007700"&gt;= array(); &lt;br&gt;        foreach(&lt;/font&gt;&lt;font color="#0000bb"&gt;$carr&lt;/font&gt;&lt;font color="#007700"&gt;[&lt;/font&gt;&lt;font color="#0000bb"&gt;0&lt;/font&gt;&lt;font color="#007700"&gt;] as &lt;/font&gt;&lt;font color="#0000bb"&gt;$key&lt;/font&gt;&lt;font color="#007700"&gt;=&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;        { &lt;br&gt;            &lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr&lt;/font&gt;&lt;font color="#007700"&gt;[] = &lt;/font&gt;&lt;font color="#0000bb"&gt;trim&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        } &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;implode&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$getarr&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;preg_replace&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;'/[\r]/i'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;'&amp;lt;br&amp;gt;'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$style &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getStyle&lt;/font&gt;&lt;font color="#007700"&gt;(); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getTable&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$style&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   etFilepath($filepath,$oldroot,$newroot) &lt;br&gt;    *   函数功能:   设置生成文件的路径 &lt;br&gt;    *   输入参数:   $filepath -------------- 源文件路径 &lt;br&gt;                   $oldroot -------------- 源目录路径 &lt;br&gt;                   $newroot -------------- 目标目录路径 &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;setFilepath&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$oldroot&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$newroot&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$oldroot &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;str_replace&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;'/'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;\\/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$oldroot&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$pattern &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$oldroot&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;(.*)/iU&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;preg_replace&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$pattern&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;'\\1'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$newpath &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$newroot&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;docdirname&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;;&lt;/font&gt;&lt;font color="#ff8000"&gt;//echo &amp;quot;$newpath&amp;lt;br&amp;gt;&amp;quot;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$newpath &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;preg_replace&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;'/(.*\.)(.*[^\.].*)/i'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;'\\1htm'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$newpath&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$newpath&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   getFileDir($path) &lt;br&gt;    *   函数功能:   取得文档目录 &lt;br&gt;    *   输入参数:   $path ------------- 文档路径 &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;getFileDir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$getpath &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;preg_replace&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;'/(.*)(\/.*[^\.].*)/i'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;'\\1'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$getpath&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   setDoc &lt;br&gt;    *   函数功能:   将注释写入指定目录并生成页面 &lt;br&gt;    *   输入参数:   $filepath --------------- 目录路径 &lt;br&gt;                   $content ---------------- 写入的内容 &lt;br&gt;    *   函数返回值: 返回值说明 &lt;br&gt;    *   其它说明:   说明 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;setDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$fp &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;fopen&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$filepath&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;w+&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;flock&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$fp&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;LOCK_EX&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;fwrite&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$fp&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;flock&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$fp&lt;/font&gt;&lt;font color="#007700"&gt;, &lt;/font&gt;&lt;font color="#0000bb"&gt;LOCK_UN&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   mkdirs($path) &lt;br&gt;    *   函数功能:   创建目录 &lt;br&gt;    *   输入参数:   $path ------------------- 路径 &lt;br&gt;    *   函数返回值: none &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;mkdirs&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$adir &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;explode&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;'/'&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$dirlist &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;''&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$rootdir &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$adir&lt;/font&gt;&lt;font color="#007700"&gt;[&lt;/font&gt;&lt;font color="#0000bb"&gt;0&lt;/font&gt;&lt;font color="#007700"&gt;]; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;array_shift &lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$adir&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        foreach(&lt;/font&gt;&lt;font color="#0000bb"&gt;$adir &lt;/font&gt;&lt;font color="#007700"&gt;as &lt;/font&gt;&lt;font color="#0000bb"&gt;$key&lt;/font&gt;&lt;font color="#007700"&gt;=&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;        { &lt;br&gt;            if(&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;!=&lt;/font&gt;&lt;font color="#dd0000"&gt;'.'&lt;/font&gt;&lt;font color="#007700"&gt;&amp;amp;&amp;amp;&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;!=&lt;/font&gt;&lt;font color="#dd0000"&gt;'..'&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;            { &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$dirlist &lt;/font&gt;&lt;font color="#007700"&gt;.= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                &lt;/font&gt;&lt;font color="#0000bb"&gt;$dirpath &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$rootdir&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$dirlist&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;                if(!&lt;/font&gt;&lt;font color="#0000bb"&gt;file_exists&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$dirpath&lt;/font&gt;&lt;font color="#007700"&gt;)&amp;amp;&amp;amp;!&lt;/font&gt;&lt;font color="#0000bb"&gt;is_file&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$dirpath&lt;/font&gt;&lt;font color="#007700"&gt;)) &lt;br&gt;                { &lt;br&gt;                    &lt;/font&gt;&lt;font color="#0000bb"&gt;mkdir&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$dirpath&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                    &lt;/font&gt;&lt;font color="#0000bb"&gt;chmod&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$dirpath&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;0777&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;                } &lt;br&gt;            } &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   filter($item,$arr=null) &lt;br&gt;    *   函数功能:   过滤 &lt;br&gt;    *   输入参数:   $item -------------- 内容 &lt;br&gt;                   $arr --------------- 过滤项 &lt;br&gt;    *   函数返回值: bool &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;filter&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$item&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$arr&lt;/font&gt;&lt;font color="#007700"&gt;=&lt;/font&gt;&lt;font color="#0000bb"&gt;null&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$item &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;strtolower&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$item&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$filter &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;explode&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;','&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$arr&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;        if(&lt;/font&gt;&lt;font color="#0000bb"&gt;$arr&lt;/font&gt;&lt;font color="#007700"&gt;==&lt;/font&gt;&lt;font color="#0000bb"&gt;null&lt;/font&gt;&lt;font color="#007700"&gt;||!&lt;/font&gt;&lt;font color="#0000bb"&gt;in_array&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$item&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter&lt;/font&gt;&lt;font color="#007700"&gt;)) &lt;br&gt;        { &lt;br&gt;            Return &lt;/font&gt;&lt;font color="#0000bb"&gt;true&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        } &lt;br&gt;        else &lt;br&gt;        { &lt;br&gt;            Return &lt;/font&gt;&lt;font color="#0000bb"&gt;false&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   createFrame($root) &lt;br&gt;    *   函数功能:   生成框架页 &lt;br&gt;    *   输入参数:   $root --------------- 首页的存放目录 &lt;br&gt;    *   函数返回值: str &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;createFrame&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;' &lt;br&gt;        &amp;lt;html&amp;gt; &lt;br&gt;        &amp;lt;head&amp;gt; &lt;br&gt;        &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=gb2312&amp;quot;&amp;gt; &lt;br&gt;        &amp;lt;title&amp;gt;无标题文档&amp;lt;/title&amp;gt; &lt;br&gt;        &amp;lt;/head&amp;gt; &lt;br&gt;&lt;br&gt;        &amp;lt;frameset cols=&amp;quot;150,*&amp;quot; frameborder=&amp;quot;YES&amp;quot; border=&amp;quot;10&amp;quot; framespacing=&amp;quot;5&amp;quot; bordercolor=&amp;quot;#003366&amp;quot;&amp;gt; &lt;br&gt;          &amp;lt;frame
src=&amp;quot;menu.htm&amp;quot; name=&amp;quot;leftFrame&amp;quot; framespacing=&amp;quot;5&amp;quot; frameborder=&amp;quot;auto&amp;quot;
border=&amp;quot;5&amp;quot; bordercolor=&amp;quot;#f5f5f5&amp;quot;  topmargin=&amp;quot;0&amp;quot;  leftmargin=&amp;quot;0&amp;quot;
marginheight=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; &amp;gt; &lt;br&gt;          &amp;lt;frame src=&amp;quot;#&amp;quot; name=&amp;quot;mainFrame&amp;quot;&amp;gt; &lt;br&gt;        &amp;lt;/frameset&amp;gt; &lt;br&gt;        &amp;lt;noframes&amp;gt;&amp;lt;body&amp;gt; &lt;br&gt;        &amp;lt;/body&amp;gt;&amp;lt;/noframes&amp;gt; &lt;br&gt;        &amp;lt;/html&amp;gt;'&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;docdir &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;index.htm&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;setDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;docdir&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   createMenu($root,$data) &lt;br&gt;    *   函数功能:   生成菜单 &lt;br&gt;    *   输入参数:   $root ------------------- 页面存入目录 &lt;br&gt;                   $data ------------------- 内容 &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;createMenu&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$data&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$path &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$root&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;menu.htm&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;getStyle&lt;/font&gt;&lt;font color="#007700"&gt;(); &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;.= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;table&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        foreach(&lt;/font&gt;&lt;font color="#0000bb"&gt;$data &lt;/font&gt;&lt;font color="#007700"&gt;as &lt;/font&gt;&lt;font color="#0000bb"&gt;$key&lt;/font&gt;&lt;font color="#007700"&gt;=&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;        { &lt;br&gt;            &lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;.= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href='&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;[&lt;/font&gt;&lt;font color="#dd0000"&gt;'url'&lt;/font&gt;&lt;font color="#007700"&gt;].&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;' target='mainFrame'&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$val&lt;/font&gt;&lt;font color="#007700"&gt;[&lt;/font&gt;&lt;font color="#dd0000"&gt;'name'&lt;/font&gt;&lt;font color="#007700"&gt;].&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        } &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;.= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$this&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;setDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$path&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   getStyle() &lt;br&gt;    *   函数功能:   样式 &lt;br&gt;    *   输入参数:   none &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;getStyle&lt;/font&gt;&lt;font color="#007700"&gt;() &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;' &lt;br&gt;        &amp;lt;style&amp;gt; &lt;br&gt;        table { &lt;br&gt;            font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;宋体&amp;quot;; &lt;br&gt;            border-collapse: collapse; &lt;br&gt;            word-break:break-all; &lt;br&gt;        } &lt;br&gt;        td { &lt;br&gt;            font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;宋体&amp;quot;; &lt;br&gt;            font-size: 12px; &lt;br&gt;            line-height: 22px; &lt;br&gt;        } &lt;br&gt;        &amp;lt;/style&amp;gt;'&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/font&gt;&lt;font color="#ff8000"&gt;/** &lt;br&gt;    *   函数名称:   getTable($content) &lt;br&gt;    *   函数功能:   把内容放入table中 &lt;br&gt;    *   输入参数:   $content ------------ 内容 &lt;br&gt;    *   函数返回值: string &lt;br&gt;    *   其它说明:   2004-10-13 &lt;br&gt;    */ &lt;br&gt;    &lt;/font&gt;&lt;font color="#007700"&gt;function &lt;/font&gt;&lt;font color="#0000bb"&gt;getTable&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/font&gt;&lt;font color="#0000bb"&gt;$str &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;table width=\&amp;quot;100%\&amp;quot; border=\&amp;quot;1\&amp;quot; bordercolor=\&amp;quot;#dbdbdb\&amp;quot; cellpadding=\&amp;quot;5\&amp;quot; cellspacing=\&amp;quot;0\&amp;quot;&amp;gt; &lt;br&gt;        &amp;lt;tr&amp;gt; &lt;br&gt;            &amp;lt;td bgcolor=\&amp;quot;#f5f5f5\&amp;quot;&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#0000bb"&gt;$content&lt;/font&gt;&lt;font color="#007700"&gt;.&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;&amp;lt;/td&amp;gt; &lt;br&gt;        &amp;lt;/tr&amp;gt; &lt;br&gt;        &amp;lt;/table&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;        Return &lt;/font&gt;&lt;font color="#0000bb"&gt;$str&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;    } &lt;br&gt;} &lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="#ff8000"&gt;// 使用 &lt;br&gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$d &lt;/font&gt;&lt;font color="#007700"&gt;= new &lt;/font&gt;&lt;font color="#0000bb"&gt;doc&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter &lt;/font&gt;&lt;font color="#007700"&gt;= &lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;adodb,smarty,cvs,templates,templates_c&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;; &lt;br&gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;$d&lt;/font&gt;&lt;font color="#007700"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;createDoc&lt;/font&gt;&lt;font color="#007700"&gt;(&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;e:/www/kpub20/class/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#dd0000"&gt;&amp;quot;e:/www/test/aaa/&amp;quot;&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;1&lt;/font&gt;&lt;font color="#007700"&gt;,&lt;/font&gt;&lt;font color="#0000bb"&gt;$filter&lt;/font&gt;&lt;font color="#007700"&gt;); &lt;br&gt;&lt;/font&gt;&lt;font color="#0000bb"&gt;?&amp;gt;&lt;/font&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+php%e6%96%87%e6%a1%a3%e7%94%9f%e6%88%90%e7%b1%bb&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!272.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!272.entry</guid><pubDate>Wed, 29 Mar 2006 08:10:58 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!272/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!272.entry#comment</wfw:comment><dcterms:modified>2006-03-29T08:10:58Z</dcterms:modified></item><item><title>PHP程序加速探索[4]--测试--脚本执行速度测试</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!247.entry</link><description>&lt;p&gt;&lt;b&gt;&lt;span style="font-size:9pt;color:rgb(51, 153, 102);font-family:宋体"&gt;◆&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:9pt;color:rgb(51, 153, 102);font-family:Verdana"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:10pt;color:rgb(51, 153, 102);font-family:宋体"&gt;脚本执行速度测试&lt;/span&gt;&lt;/b&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;前面有提到，只有找到影响速度的代码，我们才有可能进行优化。&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;PEAR&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;的&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;benchmark&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;包中的&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;Benchmark_Timer&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;类和&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;Benchmark_Iterate&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;类，可以用来很方便地测试脚本执行的速度。&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;(&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;关于&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;PEAR&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;的安装与配置请自行查看相关资料&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;)&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:red;font-family:宋体"&gt;首先用&lt;/span&gt;&lt;span style="font-size:9pt;color:blue;font-family:Verdana" lang=EN-US&gt;Benchmark_Iterate&lt;/span&gt;&lt;span style="font-size:9pt;color:blue;font-family:宋体"&gt;类&lt;/span&gt;&lt;span style="font-size:9pt;color:red;font-family:宋体"&gt;来测试程序中某个函数或类的某个方法的执行时间。&lt;/span&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;benchmark1.php&lt;/span&gt;&lt;/b&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;&lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;require_once(&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(221, 0, 0);font-family:黑体" lang=EN-US&gt;'Benchmark/Iterate.php'&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;); &lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;$benchmark &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;= new &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;Benchmark_Iterate()&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;; &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;$benchmark&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;-&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;run&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;(&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;10&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;, &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(221, 0, 0);font-family:黑体" lang=EN-US&gt;'myFunction'&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;,&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(221, 0, 0);font-family:黑体" lang=EN-US&gt;'test'&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;); &lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;$result &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;= &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;$benchmark&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;-&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;get&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;(); &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;&lt;br&gt;&lt;code&gt;echo &lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(221, 0, 0);font-family:黑体" lang=EN-US&gt;&amp;quot;&lt;pre&gt;&amp;quot;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;; &lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;print_r&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;(&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;$result&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;); &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;&lt;br&gt;&lt;code&gt;echo &lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(221, 0, 0);font-family:黑体" lang=EN-US&gt;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;; &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;&lt;br&gt;&lt;code&gt;exit; &lt;/code&gt;&lt;br&gt;&lt;br&gt;&lt;code&gt;function &lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;myFunction&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;(&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;$var&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;) { &lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(255, 128, 0);font-family:黑体" lang=EN-US&gt;// do something &lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;echo &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(221, 0, 0);font-family:黑体" lang=EN-US&gt;'Hello '&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;; &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:10pt;color:rgb(0, 119, 0);font-family:黑体" lang=EN-US&gt;&lt;br&gt;&lt;code&gt;} &lt;/code&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size:10pt;color:rgb(0, 0, 187);font-family:黑体" lang=EN-US&gt;?&amp;gt;&lt;/span&gt;&lt;/code&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;建立&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;benchmark Iterate&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;对象&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;$benchmark&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;，这个对象用来执行&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;myFunction&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;函数&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;10&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;次。&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;$argument&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;变量每次都传递给&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;myFunction. &lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;多次运行的分析结果存入&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;$result&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;，然后用&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;benchmark&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;对象的&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;get()&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;方法来获取。这个结果用&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;print_r()&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;输出到屏幕。通常会输出这样的结果：&lt;/span&gt;
&lt;p align=left&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello &lt;/span&gt;&lt;pre&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;Array&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [1] =&amp;gt; 0.000427&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [2] =&amp;gt; 0.000079&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [3] =&amp;gt; 0.000072&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [4] =&amp;gt; 0.000071&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [5] =&amp;gt; 0.000076&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [6] =&amp;gt; 0.000070&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [7] =&amp;gt; 0.000073&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [8] =&amp;gt; 0.000070&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [9] =&amp;gt; 0.000074&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [10] =&amp;gt; 0.000072&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [mean] =&amp;gt; 0.000108&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;    [iterations] =&amp;gt; 10&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue" lang=EN-US&gt;&lt;font face="黑体"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;myFunction&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;的每次执行，&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;benchmark&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;对象都会跟踪执行时间。并且会计算平均的执行时间&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;([mean]&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;那一行&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;)&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;。通过多次运行目标函数，你可以得到该函数的平均运行时间。&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;在实际测试中，函数的次数应当至少&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana" lang=EN-US&gt;1000&lt;/span&gt;&lt;span style="font-size:9pt;font-family:宋体"&gt;次左右，这样可以得到较客观的结果。&lt;/span&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP%e7%a8%8b%e5%ba%8f%e5%8a%a0%e9%80%9f%e6%8e%a2%e7%b4%a2%5b4%5d--%e6%b5%8b%e8%af%95--%e8%84%9a%e6%9c%ac%e6%89%a7%e8%a1%8c%e9%80%9f%e5%ba%a6%e6%b5%8b%e8%af%95&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!247.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!247.entry</guid><pubDate>Wed, 29 Mar 2006 03:19:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!247/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!247.entry#comment</wfw:comment><dcterms:modified>2006-03-29T03:19:36Z</dcterms:modified></item><item><title>Win2003下PHP环境搭建</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!220.entry</link><description>&lt;div&gt;
&lt;p&gt;&lt;font size=2&gt;先从各官方网站下了APACHE2.050、PHP5、MYSQL4.0.20、PHPMYADMIN2.57&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;a href="http://apache.linuxforum.net/dist/httpd/binaries/win32/apache_2.0.50-win32-x86-no_ssl.msi"&gt;&lt;font color="#000000" size=2&gt;&lt;u&gt;apache_2.0.50-win32-x86-no_ssl.msi&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; &lt;br&gt;&lt;/font&gt;&lt;a href="http://cn2.php.net/get/php-5.0.0-Win32.zip/from/this/mirror"&gt;&lt;font color="#000000" size=2&gt;&lt;u&gt;php-5.0.0-Win32.zip&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;a href="http://mysql.ihostunit.com/Downloads/MySQL-4.0/mysql-4.0.20d-win.zip"&gt;&lt;font color="#000000" size=2&gt;&lt;u&gt;mysql-4.0.20d-win.zip&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;a href="http://crc.onlinedown.net/down/phpMyAdmin-2.5.7.zip"&gt;&lt;font color="#000000" size=2&gt;&lt;u&gt;phpMyAdmin-2.5.7.zip&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;font size=2&gt;&lt;strong&gt;操作系统 win2003 系统盘为: D盘&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;第一步: 安装apache 并配置支持PHP&lt;/strong&gt;&lt;br&gt;&lt;br&gt;点击安装文件apache_2.0.50-win32-x86-no_ssl.msi&lt;br&gt;将apache安装在 D:\apache2 目录（随自己喜好）下&lt;br&gt;+-----------------------------------------------------&lt;br&gt;| 注: 安装完后会自动安装并启动apache的服务,如在此处出现问题:&lt;br&gt;|“（OS 10048)通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次: &lt;br&gt;| make_sock: could not bind to address 0.0.0.0:80...” 一般是IIS占用了80端口引起的&lt;br&gt;| 两种解决方法: &lt;br&gt;| 1、打开 控制面板-&amp;gt;服务 找到 IIS admin 的服务 关闭并禁用&lt;br&gt;|&lt;br&gt;| 2、如果不想关闭IIS服务 可将apache使用的端口改成其它端口&lt;br&gt;| 将apache2/conf/httpd.conf 中的 &lt;br&gt;| Listen 80 改为 Listen （你要使用的端口） 如 Listen 8080&lt;br&gt;| 不过这时在你访问你的apache 下的Web服务时 在域名后要加上端口号&lt;br&gt;| 如： &lt;/font&gt;&lt;a href="http://localhost:8080/"&gt;&lt;font color="#000000" size=2&gt;&lt;u&gt;http://localhost:8080/&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font size=2&gt;|&lt;br&gt;| 然后用CMD进入命令行模式 进入你安装apache的目录 /apache2/bin&lt;br&gt;| 输入 &lt;br&gt;| apache -k install&lt;br&gt;| apache -k start&lt;br&gt;| &lt;br&gt;| 如果成功的话,再接着做下面的!&lt;br&gt;+--------------------------------------------------------------&lt;br&gt;&lt;br&gt;将php-5.0.0-Win32.zip 里内容解压到 D:\php 里&lt;br&gt;找到 php目录里的 php.ini-dist 重命名为 php.ini 并拷到 windows目录里(win2k 里为winnt)&lt;br&gt;如我的php.ini是拷到 D:\windows目录&lt;br&gt;再玴hp目录里的 php5ts.dll,libmysql.dll 拷到 系统目录(system/system32) 如我的是D:\windows\system里&lt;br&gt;&lt;br&gt;配置apache里的httpd.conf&lt;br&gt;打开 D:\Apache2\conf\httpd.conf 这个文件&lt;br&gt;找到 AddDefaultCharset ISO-8859-1 将其改为 AddDefaultCharset GB2312 （让默认语言编码为简体中文）&lt;br&gt;找到 DocumentRoot &amp;quot;D:/Apache2/htdocs&amp;quot; 将其改为你的WEB目录（可不改）如我的为 DocumentRoot &amp;quot;D:/website&amp;quot;&lt;br&gt;找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php&lt;br&gt;&lt;br&gt;选择安装模式： 模块化模式 安装 或 CGI模式安装 （选一样即可）&lt;br&gt;&lt;br&gt;--------------模块化安装配置----------------------------------------&lt;br&gt;找到 #LoadModule ssl_module modules/mod_ssl.so 这行，在此行后加入一行&lt;br&gt;LoadModule php5_module d:/php/php5apache2.dll&lt;br&gt;其中d:/php/php5apache2.dll 为你php目录中php5apache2.dll