<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky1.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/phpv" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/phpv" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 06 May 2008 16:27:52 GMT</lastBuildDate><title>PHP5研究室</title><description>PHP5研究室-php中文文档,PHP资源</description><link>http://www.phpv.net/</link><language>en</language><dc:creator>easy@phpv.net</dc:creator><dc:language>en</dc:language><image><title>PHP5研究室 - 致力推广国内PHP发展!</title><url>http://www.phpv.net/images/phpv_logo1.gif</url><link>http://www.phpv.net/</link></image><item><title>正则表达式权威中文手册(非官方)</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/71731195/1235221/1/item.html</link><content:encoded>原来想写的PHP与正则表达系列教程,因为时间原因.没能持续。现在好了,有了这个手册.基本就全乎了.&lt;br&gt;这是我能看到的正则表达式相关文档中最易学实用，又最权威的一个．感谢deerchao同学的辛苦付出．点　&amp;gt;&lt;a title=&quot;正则表达式入门权威教程&quot; target=&quot;_blank&quot; href=&quot;http://manual.phpv.net/regular_expression.html&quot;&gt;这里&lt;/a&gt;&amp;lt;　可以看到．&lt;br&gt;&lt;br&gt;&lt;br&gt;－－－－－－－－－－－－－－－正文－－－－－－－－－－－－－－－－－&lt;br&gt;&lt;p&gt;别被下面那些复杂的表达式吓倒，只要跟着我一步一步来，你会发现正则表达式其实并&lt;span lang=&quot;zh-cn&quot;&gt;没有&lt;/span&gt;你
想像中的那么困难。当然，如果你看完了这篇教程之后，发现自己明白了很多，却又几乎什么都记不得，那也是很正常的——我认为，没接触过正则表达式的人在看
完这篇教程后，能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理，以后你还需要多练习，多使用，才能熟练掌握正则表达式。&lt;/p&gt;
    &lt;p&gt;除了作为入门教程之外，本文还试图成为可以在日常工作中使用的正则表达式语法参考手册。就作者本人的经历来说，这个目标还是完成得不错的——你看，我自己也没能把所有的东西记下来，不是吗？............更多点　&amp;gt;&lt;a title=&quot;正则表达式入门权威教程&quot; target=&quot;_blank&quot; href=&quot;http://manual.phpv.net/regular_expression.html&quot;&gt;这里&lt;/a&gt;&amp;lt;　&lt;/p&gt;</content:encoded><description>原来想写的PHP与正则表达系列教程,因为时间原因.没能持续。现在好了,有了这个手册.基本就全乎了.
这是我能看到的正则表达式相关文档中最易学实用，又最权威的一个．感谢deerchao同学的辛苦付出．点　&amp;gt;&amp;lt;a href=&amp;quot;http://manual.phpv.net/regular_expression.html&amp;quot; target=&amp;quot;_blank&amp;quot; title=&amp;quot;正则表达式入门权威教程&amp;quot;&amp;gt;这里&amp;lt;/a&amp;gt;&amp;lt;　可以看到．</description><category>非PHP技术话题</category><pubDate>Wed, 07 May 2008 00:27:52 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/regular_expression.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/regular_expression.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/regular_expression.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/71731195/1235221</fs:itemid></item><item><title>如何为 MySQL 选择更合适的服务器硬件</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70716231/1235221/1/item.html</link><content:encoded>&lt;p&gt;&lt;a set=&quot;yes&quot; linkindex=&quot;0&quot; href=&quot;http://www.dbanotes.net/&quot; accesskey=&quot;1&quot;&gt;DBA notes&lt;/a&gt; 的 &lt;span class=&quot;byline&quot;&gt; &lt;a style=&quot;color: orange;&quot; set=&quot;yes&quot; linkindex=&quot;19&quot; href=&quot;http://www.dbanotes.net/&quot;&gt;Fenng&lt;/a&gt; 老大发了一篇&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;a set=&quot;yes&quot; linkindex=&quot;8&quot; href=&quot;http://www.dbanotes.net/database/mysql_hardware.html&quot;&gt;为 MySQL 选择更合适的硬件&lt;/a&gt;&lt;/font&gt;&lt;span class=&quot;byline&quot;&gt;的文章,&lt;/span&gt;我转摘过来,并根据自己的使用习惯做了点评.以下部分,红色字体为我的话.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;-------------------------------------------- 分割线 ----------------------------------------&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;MySQL 爱好者关注的 &lt;a linkindex=&quot;120&quot; target=&quot;_blank&quot; href=&quot;http://en.oreilly.com/mysql2008/public/content/home&quot;&gt;2008 MySQL Conference &amp;amp; Expo&lt;/a&gt; 落幕后，很多文档都能看到了。今天读了一下这篇 &lt;a set=&quot;yes&quot; linkindex=&quot;121&quot; target=&quot;_blank&quot; href=&quot;http://en.oreilly.com/mysql2008/public/schedule/detail/2292&quot;&gt;Scaling Out MySQL: Hardware Today and Tomorrow&lt;/a&gt;。感兴趣的朋友也不防&lt;a linkindex=&quot;122&quot; target=&quot;_blank&quot; href=&quot;http://www.scribd.com/doc/2569227/Scaling-out-MySQL-Hardware-today-and-tomorrow&quot;&gt;下载&lt;/a&gt;下来研究一下。&lt;/p&gt;

&lt;p&gt;用什么样的硬件做 MySQL ，真不是三言两语能说清楚的。不过该讲座中还是能总结出来几点关键点的。&lt;/p&gt;

&lt;h4&gt;&lt;br&gt;&lt;/h4&gt;&lt;h4 style=&quot;color: rgb(0, 0, 205);&quot;&gt;&lt;font size=&quot;4&quot;&gt;CPU 选择&lt;/font&gt;&lt;/h4&gt;
&lt;p&gt;首先如有可能就&lt;strong&gt;选择 64 位CPU&lt;/strong&gt;，这样才可以安装 64 位操作系统，有了 64 位操作系统才能利用好更大的内存。如果非要抬杠的话，不是 64 位芯片也可以安装 64 位操作系统，也就是 &lt;a linkindex=&quot;123&quot; target=&quot;_blank&quot; href=&quot;http://www.dbanotes.net/review/intel_em64t_oracle.html&quot;&gt;Intel 的 EM64T&lt;/a&gt; 的解决方案(这也是文档中没提及的) 。&lt;/p&gt;

&lt;p&gt;我个人倒是比较喜欢 AMD 64 位 CPU 的，物美价廉，性能也不错。&lt;/p&gt;

&lt;p&gt;注意： MySQL 在多核上的 Bug 问题。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;(&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;1.现在配置的服务器,基本上都是64位的CPU.&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;也许出于对稳定和系统兼容性的考虑,&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;很多管理员更喜欢安装32位的操作系统.我前段上线的一台53XX的四核至强CPU&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;服务器&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;,安装的是linux 64位操作系统[ubuntu server 8.0.4] 测试下来,在跑WEB服务这块,似乎没有任何稳定和软件兼容上的问题,大家可放心使用.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;2.CPU个数,当然是双路或者四路最好.但如果压力不是非常巨大,我认为一颗CPU也够用了.省下的钱去换好的硬盘和加大内存,效果会更明显&lt;/span&gt;)&lt;/p&gt;&lt;h4&gt;&lt;br&gt;&lt;/h4&gt;&lt;h4 style=&quot;color: rgb(0, 0, 205);&quot;&gt;&lt;font size=&quot;4&quot;&gt;内存，来者不拒&lt;/font&gt;&lt;/h4&gt;

&lt;p&gt;第二点是尽可能配置比较大的内存，当然，只配置大内存如果 MySQL 参数配置有问题，还是摆设，如何设置各个引擎的 Cache 相关参数，够写一本书的了。&lt;/p&gt;

&lt;p&gt;现在市场上内存是越来越便宜了。我个人的感觉内存降价的程度比 CPU 和硬盘都夸张很多。所以，考虑到人力越来越贵，内存越来越便宜，配置服务器的时候就别太吝啬了。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;(&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;1. 这点几乎是共识了,个人推荐4G以上内存.参数配置和缓存设置方面我认为,一是别道听途说,自己多测试性能.按自己的实际情况调整参数. 二是认真看官方手册,手册的大多数,基本上算是真理了.&lt;/span&gt;)&lt;br&gt;&lt;/p&gt;

&lt;h4&gt;&lt;br&gt;&lt;/h4&gt;&lt;h4&gt;&lt;br&gt;&lt;/h4&gt;&lt;h4 style=&quot;color: rgb(0, 0, 205);&quot;&gt;&lt;font size=&quot;4&quot;&gt;硬盘--唯快不破&lt;/font&gt;&lt;/h4&gt;

&lt;p&gt;国内用 MySQL ，绝大多数都是直接仍在本机磁盘上的。这个磁盘的选择要慎重一点点。尽量选择 15K 而不要 10K
慢速磁盘，大多数数据库的磁盘问题都在速度上，如果只在磁盘上多花费 30%的钱而能得到总体性能的
30％收益，那么还是值得的，而容量多数情况下不会出现问题，现在的硬盘容量就是一个大。&lt;/p&gt;

&lt;p&gt;至于选择什么类型的磁盘，SCSI 与 SAS 都可选，SATA 倒是够便宜，特定的应用再考虑吧。&lt;/p&gt;

&lt;p&gt;这三板斧看是简单活，但是实际的应用场景下可未必就能做出更优的选择。最简单的东西也有人不知道不是?&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;(&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;是的,把CPU节省下来的钱,换上一块好的硬盘吧. 如果有需要,推荐部署单独的数据库服务器&lt;/span&gt;)&lt;br&gt;&lt;/p&gt;</content:encoded><description>用什么样的硬件做 MySQL ，真不是三言两语能说清楚的。DBA notes 的  Fenng 老大发了一篇为 MySQL 选择更合适的硬件的文章,我转摘过来,并根据自己的使用习惯做了点评.以下部分,红色字体为我的话.</description><category>MYSQL数据库</category><pubDate>Fri, 02 May 2008 14:06:59 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/how_to_select_mysql_hardware.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/how_to_select_mysql_hardware.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/how_to_select_mysql_hardware.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70716231/1235221</fs:itemid></item><item><title>PHP 5.2.6 发布</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685636/1235221/1/item.html</link><content:encoded>五一劳动节,PHP5.2.6版本发布. &lt;br&gt;修复4个安全方面的问题,把 PCRE 更新到了版本 7.6&lt;br&gt;同时还修复了130多处BUG&lt;br&gt;&lt;br&gt;推荐有需要的用户更新.&lt;br&gt;&lt;br&gt;&lt;a title=&quot;PHP5.2.6下载&quot; target=&quot;_blank&quot; href=&quot;http://cn2.php.net/get/php-5.2.6.tar.gz/from/cn.php.net/mirror&quot;&gt;linux 系统点这里下载&lt;/a&gt;&lt;br&gt;&lt;a title=&quot;PHP5.2.5 WINDOWS系统安装包下载&quot; target=&quot;_blank&quot; href=&quot;http://cn.php.net/get/php-5.2.6-win32-installer.msi/from/this/mirror&quot;&gt;WINDOWS安装包点这里下载&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a title=&quot;PHP5.2.6 zip解压包&quot; target=&quot;_blank&quot; href=&quot;http://cn2.php.net/get/php-5.2.6-Win32.zip/from/cn.php.net/mirror&quot;&gt;WINDOWS ZIP 解压包版本点这里下载&lt;/a&gt;&lt;br&gt;&lt;br&gt;需要其它版本,请到&lt;a title=&quot;PHP官方网站下载&quot; target=&quot;_blank&quot; href=&quot;http://www.php.net/downloads.php&quot;&gt;官方&lt;/a&gt;去下载&lt;br&gt;&lt;br&gt;&lt;br&gt;以下是Version 5.2.6的ChangeLog:(英文)&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Security Fixes
		&lt;ul&gt;&lt;li&gt;Fixed possible stack buffer overflow in FastCGI SAPI. (Andrei Nigmatulin)&lt;/li&gt;&lt;li&gt;Properly address incomplete multibyte chars inside escapeshellcmd() (Ilia, Stefan Esser)&lt;/li&gt;&lt;li&gt;Fixed security issue detailed in CVE-2008-0599. (Rasmus)&lt;/li&gt;&lt;li&gt;Fixed a safe_mode bypass in cURL identified by Maksymilian Arciemowicz. (Ilia)&lt;/li&gt;&lt;li&gt;Upgraded PCRE to version 7.6 (Nuno)&lt;/li&gt;&lt;/ul&gt;
	&lt;/li&gt;&lt;li&gt;Fixed two possible crashes inside posix extension (Tony)&lt;/li&gt;&lt;li&gt;Fixed incorrect heredoc handling when label is used within the block.  (Matt)&lt;/li&gt;&lt;li&gt;Fixed sending of uninitialized paddings which may contain some information. (Andrei Nigmatulin)&lt;/li&gt;&lt;li&gt;Fixed a bug in formatting timestamps when DST is active in the default timezone (Derick)&lt;/li&gt;&lt;li&gt;Fix integer overflow in printf(). (Stas, Maksymilian Aciemowicz)&lt;/li&gt;&lt;li&gt;Fixed potential memleak in stream filter parameter for zlib filter. (Greg)&lt;/li&gt;&lt;li&gt;Added Reflection API metadata for the methods of the DOM classes. (Sebastian)&lt;/li&gt;&lt;li&gt;Fixed weird behavior in CGI parameter parsing. (Dmitry, Hannes Magnusson)&lt;/li&gt;&lt;li&gt;Fixed a bug with PDO::FETCH_COLUMN|PDO::FETCH_GROUP mode when a column # by which to group by data is specified. (Ilia)&lt;/li&gt;&lt;li&gt;Fixed segfault in filter extension when using callbacks. (Arnar Mar Sig, Felipe)&lt;/li&gt;&lt;li&gt;Fixed faulty fix for bug Fixed bug &lt;a linkindex=&quot;11&quot; href=&quot;http://bugs.php.net/40189&quot;&gt;#40189&lt;/a&gt; (endless loop in zlib.inflate stream filter). (Greg)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;12&quot; href=&quot;http://bugs.php.net/44742&quot;&gt;#44742&lt;/a&gt; (timezone_offset_get() causes segmentation faults). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;13&quot; href=&quot;http://bugs.php.net/44720&quot;&gt;#44720&lt;/a&gt; (Prevent crash within session_register()). (Scott)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;14&quot; href=&quot;http://bugs.php.net/44703&quot;&gt;#44703&lt;/a&gt; (htmlspecialchars() does not detect bad character set argument). (Andy Wharmby)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;15&quot; href=&quot;http://bugs.php.net/44673&quot;&gt;#44673&lt;/a&gt; (With CGI argv/argc starts from arguments, not from script) (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;16&quot; href=&quot;http://bugs.php.net/44667&quot;&gt;#44667&lt;/a&gt; (proc_open() does not handle pipes with the mode 'wb' correctly). (Jani)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;17&quot; href=&quot;http://bugs.php.net/44663&quot;&gt;#44663&lt;/a&gt; (Crash in imap_mail_compose if &quot;body&quot; parameter invalid). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;18&quot; href=&quot;http://bugs.php.net/44650&quot;&gt;#44650&lt;/a&gt; (escapeshellscmd() does not check arg count). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;19&quot; href=&quot;http://bugs.php.net/44613&quot;&gt;#44613&lt;/a&gt; (Crash inside imap_headerinfo()). (Ilia, jmessa)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;20&quot; href=&quot;http://bugs.php.net/44603&quot;&gt;#44603&lt;/a&gt; (Order issues with Content-Type/Length headers on POST). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;21&quot; href=&quot;http://bugs.php.net/44594&quot;&gt;#44594&lt;/a&gt; (imap_open() does not validate # of retries parameter). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;22&quot; href=&quot;http://bugs.php.net/44591&quot;&gt;#44591&lt;/a&gt; (imagegif's filename parameter). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;23&quot; href=&quot;http://bugs.php.net/44557&quot;&gt;#44557&lt;/a&gt; (Crash in imap_setacl when supplied integer as username) (Thomas Jarosch)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;24&quot; href=&quot;http://bugs.php.net/44487&quot;&gt;#44487&lt;/a&gt; (call_user_method_array issues a warning when throwing an exception). (David Soria Parra)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;25&quot; href=&quot;http://bugs.php.net/44478&quot;&gt;#44478&lt;/a&gt; (Inconsistent behaviour when assigning new nodes). (Rob, Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;26&quot; href=&quot;http://bugs.php.net/44445&quot;&gt;#44445&lt;/a&gt; (email validator does not handle domains starting/ending with a -). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;27&quot; href=&quot;http://bugs.php.net/44440&quot;&gt;#44440&lt;/a&gt; (st_blocks undefined under BeOS). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;28&quot; href=&quot;http://bugs.php.net/44394&quot;&gt;#44394&lt;/a&gt; (Last two bytes missing from output). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;29&quot; href=&quot;http://bugs.php.net/44388&quot;&gt;#44388&lt;/a&gt; (Crash inside exif_read_data() on invalid images) (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;30&quot; href=&quot;http://bugs.php.net/44373&quot;&gt;#44373&lt;/a&gt; (PDO_OCI extension compile failed). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;31&quot; href=&quot;http://bugs.php.net/44333&quot;&gt;#44333&lt;/a&gt; (SEGFAULT when using mysql_pconnect() with client_flags). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;32&quot; href=&quot;http://bugs.php.net/44306&quot;&gt;#44306&lt;/a&gt; (Better detection of MIPS processors on Windows). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;33&quot; href=&quot;http://bugs.php.net/44242&quot;&gt;#44242&lt;/a&gt; (metaphone('CMXFXM') crashes PHP). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;34&quot; href=&quot;http://bugs.php.net/44233&quot;&gt;#44233&lt;/a&gt; (MSG_PEEK undefined under BeOS R5). (jonathonfreeman at gmail dot com, Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;35&quot; href=&quot;http://bugs.php.net/44216&quot;&gt;#44216&lt;/a&gt; (strftime segfaults on large negative value). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;36&quot; href=&quot;http://bugs.php.net/44209&quot;&gt;#44209&lt;/a&gt; (strtotime() doesn't support 64 bit timestamps on 64 bit platforms). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;37&quot; href=&quot;http://bugs.php.net/44206&quot;&gt;#44206&lt;/a&gt; (OCI8 selecting ref cursors leads to ORA-1000 maximum open cursors reached). (Oracle Corp.)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;38&quot; href=&quot;http://bugs.php.net/44200&quot;&gt;#44200&lt;/a&gt; (A crash in PDO when no bound targets exists and yet bound parameters are present). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;39&quot; href=&quot;http://bugs.php.net/44197&quot;&gt;#44197&lt;/a&gt; (socket array keys lost on socket_select). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;40&quot; href=&quot;http://bugs.php.net/44191&quot;&gt;#44191&lt;/a&gt; (preg_grep messes up array index). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;41&quot; href=&quot;http://bugs.php.net/44189&quot;&gt;#44189&lt;/a&gt; (PDO setAttribute() does not properly validate values for native numeric options). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;42&quot; href=&quot;http://bugs.php.net/44184&quot;&gt;#44184&lt;/a&gt; (Double free of loop-variable on exception). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;43&quot; href=&quot;http://bugs.php.net/44171&quot;&gt;#44171&lt;/a&gt; (Invalid FETCH_COLUMN index does not raise an error). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;44&quot; href=&quot;http://bugs.php.net/44166&quot;&gt;#44166&lt;/a&gt; (Parameter handling flaw in PDO::getAvailableDrivers()). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;45&quot; href=&quot;http://bugs.php.net/44159&quot;&gt;#44159&lt;/a&gt; (Crash: $pdo-&amp;gt;setAttribute(PDO::STATEMENT_ATTR_CLASS, NULL)). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;46&quot; href=&quot;http://bugs.php.net/44152&quot;&gt;#44152&lt;/a&gt; (Possible crash with syslog logging on ZTS builds). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;47&quot; href=&quot;http://bugs.php.net/44141&quot;&gt;#44141&lt;/a&gt; (private parent constructor callable through static function). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;48&quot; href=&quot;http://bugs.php.net/44113&quot;&gt;#44113&lt;/a&gt; (OCI8 new collection creation can fail with OCI-22303). (Oracle Corp.)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;49&quot; href=&quot;http://bugs.php.net/44069&quot;&gt;#44069&lt;/a&gt; (Huge memory usage with concatenation using . instead of .=). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;50&quot; href=&quot;http://bugs.php.net/44046&quot;&gt;#44046&lt;/a&gt; (crash inside array_slice() function with an invalid by-ref offset). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;51&quot; href=&quot;http://bugs.php.net/44028&quot;&gt;#44028&lt;/a&gt; (crash inside stream_socket_enable_crypto() when enabling encryption without crypto type). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;52&quot; href=&quot;http://bugs.php.net/44018&quot;&gt;#44018&lt;/a&gt; (RecursiveDirectoryIterator options inconsistancy). (Marcus)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;53&quot; href=&quot;http://bugs.php.net/44008&quot;&gt;#44008&lt;/a&gt; (OCI8 incorrect usage of OCI-Lob-&amp;gt;close crashes PHP). (Oracle Corp.)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;54&quot; href=&quot;http://bugs.php.net/43998&quot;&gt;#43998&lt;/a&gt; (Two error messages returned for incorrect encoding for mb_strto[upper|lower]). (Rui)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;55&quot; href=&quot;http://bugs.php.net/43994&quot;&gt;#43994&lt;/a&gt; (mb_ereg 'successfully' matching incorrect). (Rui)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;56&quot; href=&quot;http://bugs.php.net/43954&quot;&gt;#43954&lt;/a&gt; (Memory leak when sending the same HTTP status code multiple times). (Scott)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;57&quot; href=&quot;http://bugs.php.net/43927&quot;&gt;#43927&lt;/a&gt; (koi8r is missing from html_entity_decode()). (andy at demos dot su, Tony)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;58&quot; href=&quot;http://bugs.php.net/43912&quot;&gt;#43912&lt;/a&gt; (Interbase column names are truncated to 31 characters). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;59&quot; href=&quot;http://bugs.php.net/43875&quot;&gt;#43875&lt;/a&gt; (Two error messages returned for $new and $flag argument in mysql_connect()). (Hannes)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;60&quot; href=&quot;http://bugs.php.net/43863&quot;&gt;#43863&lt;/a&gt; (str_word_count() breaks on cyrillic &quot;ya&quot; in locale cp1251). (phprus at gmail dot com, Tony)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;61&quot; href=&quot;http://bugs.php.net/43841&quot;&gt;#43841&lt;/a&gt; (mb_strrpos offset is byte count for negative values). (Rui)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;62&quot; href=&quot;http://bugs.php.net/43840&quot;&gt;#43840&lt;/a&gt; (mb_strpos bounds check is byte count rather than a character count). (Rui)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;63&quot; href=&quot;http://bugs.php.net/43808&quot;&gt;#43808&lt;/a&gt; (date_create never fails (even when it should)). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;64&quot; href=&quot;http://bugs.php.net/43793&quot;&gt;#43793&lt;/a&gt; (zlib filter is unable to auto-detect gzip/zlib file headers). (Greg)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;65&quot; href=&quot;http://bugs.php.net/43703&quot;&gt;#43703&lt;/a&gt; (Signature compatibility check broken). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;66&quot; href=&quot;http://bugs.php.net/43677&quot;&gt;#43677&lt;/a&gt; (Inconsistent behaviour of include_path set with php_value). (manuel at mausz dot at)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;67&quot; href=&quot;http://bugs.php.net/43663&quot;&gt;#43663&lt;/a&gt; (Extending PDO class with a __call() function doesn't work). (David Soria Parra)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;68&quot; href=&quot;http://bugs.php.net/43647&quot;&gt;#43647&lt;/a&gt; (Make FindFile use PATH_SEPARATOR instead of &quot;;&quot;). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;69&quot; href=&quot;http://bugs.php.net/43635&quot;&gt;#43635&lt;/a&gt; (mysql extension ingores INI settings on NULL values passed to mysql_connect()). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;70&quot; href=&quot;http://bugs.php.net/43620&quot;&gt;#43620&lt;/a&gt; (Workaround for a bug inside libcurl 7.16.2 that can result in a crash). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;71&quot; href=&quot;http://bugs.php.net/43614&quot;&gt;#43614&lt;/a&gt; (incorrect processing of numerical string keys of array in arbitrary serialized data). (Dmitriy Buldakov, Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;72&quot; href=&quot;http://bugs.php.net/43606&quot;&gt;#43606&lt;/a&gt; (define missing depencies of the exif extension). (crrodriguez at suse dot de)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;73&quot; href=&quot;http://bugs.php.net/43589&quot;&gt;#43589&lt;/a&gt; (a possible infinite loop in bz2_filter.c). (Greg)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;74&quot; href=&quot;http://bugs.php.net/43580&quot;&gt;#43580&lt;/a&gt; (removed bogus declaration of a non-existent php_is_url() function). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;75&quot; href=&quot;http://bugs.php.net/43559&quot;&gt;#43559&lt;/a&gt; (array_merge_recursive() doesn't behave as expected with duplicate NULL values). (Felipe, Tony)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;76&quot; href=&quot;http://bugs.php.net/43533&quot;&gt;#43533&lt;/a&gt; (escapeshellarg('') returns null). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;77&quot; href=&quot;http://bugs.php.net/43527&quot;&gt;#43527&lt;/a&gt; (DateTime created from a timestamp reports environment timezone). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;78&quot; href=&quot;http://bugs.php.net/43522&quot;&gt;#43522&lt;/a&gt; (stream_get_line() eats additional characters). (Felipe, Ilia, Tony)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;79&quot; href=&quot;http://bugs.php.net/43507&quot;&gt;#43507&lt;/a&gt; (SOAPFault HTTP Status 500 - would like to be able to set the HTTP Status). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;80&quot; href=&quot;http://bugs.php.net/43505&quot;&gt;#43505&lt;/a&gt; (Assign by reference bug). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;81&quot; href=&quot;http://bugs.php.net/43498&quot;&gt;#43498&lt;/a&gt; (file_exists() on a proftpd server got SIZE not allowed in ASCII mode). (Ilia, crrodriguez at suse dot de)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;82&quot; href=&quot;http://bugs.php.net/43497&quot;&gt;#43497&lt;/a&gt; (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory). (Chris)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;83&quot; href=&quot;http://bugs.php.net/43495&quot;&gt;#43495&lt;/a&gt; (array_merge_recursive() crashes with recursive arrays). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;84&quot; href=&quot;http://bugs.php.net/43493&quot;&gt;#43493&lt;/a&gt; (pdo_pgsql does not send username on connect when password is not available). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;85&quot; href=&quot;http://bugs.php.net/43491&quot;&gt;#43491&lt;/a&gt; (Under certain conditions, file_exists() never returns). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;86&quot; href=&quot;http://bugs.php.net/43483&quot;&gt;#43483&lt;/a&gt; (get_class_methods() does not list all visible methods). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;87&quot; href=&quot;http://bugs.php.net/43482&quot;&gt;#43482&lt;/a&gt; (array_pad() does not warn on very small pad numbers). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;88&quot; href=&quot;http://bugs.php.net/43457&quot;&gt;#43457&lt;/a&gt; (Prepared statement with incorrect parms doesn't throw exception with pdo_pgsql driver). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;89&quot; href=&quot;http://bugs.php.net/43450&quot;&gt;#43450&lt;/a&gt; (Memory leak on some functions with implicit object __toString() call). (David C.)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;90&quot; href=&quot;http://bugs.php.net/43386&quot;&gt;#43386&lt;/a&gt; (array_globals not reset to 0 properly on init). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;91&quot; href=&quot;http://bugs.php.net/43377&quot;&gt;#43377&lt;/a&gt; (PHP crashes with invalid argument for DateTimeZone). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;92&quot; href=&quot;http://bugs.php.net/43373&quot;&gt;#43373&lt;/a&gt; (pcntl_fork() should not raise E_ERROR on error). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;93&quot; href=&quot;http://bugs.php.net/43364&quot;&gt;#43364&lt;/a&gt; (recursive xincludes don't remove internal xml nodes properly). (Rob, patch from ddb@bitxtender.de)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;94&quot; href=&quot;http://bugs.php.net/43301&quot;&gt;#43301&lt;/a&gt; (mb_ereg*_replace() crashes when replacement string is invalid PHP expression and 'e' option is used). (Jani)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;95&quot; href=&quot;http://bugs.php.net/43295&quot;&gt;#43295&lt;/a&gt; (crash because of uninitialized SG(sapi_headers).mimetype). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;96&quot; href=&quot;http://bugs.php.net/43293&quot;&gt;#43293&lt;/a&gt; (Multiple segfaults in getopt()). (Hannes)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;97&quot; href=&quot;http://bugs.php.net/43279&quot;&gt;#43279&lt;/a&gt; (pg_send_query_params() converts all elements in 'params' to strings). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;98&quot; href=&quot;http://bugs.php.net/43276&quot;&gt;#43276&lt;/a&gt; (Incomplete fix for bug #42739, mkdir() under safe_mode). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;99&quot; href=&quot;http://bugs.php.net/43248&quot;&gt;#43248&lt;/a&gt; (backward compatibility break in realpath()). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;100&quot; href=&quot;http://bugs.php.net/43221&quot;&gt;#43221&lt;/a&gt; (SimpleXML adding default namespace in addAttribute). (Rob)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;101&quot; href=&quot;http://bugs.php.net/43216&quot;&gt;#43216&lt;/a&gt; (stream_is_local() returns false on &quot;file://&quot;). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;102&quot; href=&quot;http://bugs.php.net/43201&quot;&gt;#43201&lt;/a&gt; (Crash on using uninitialized vals and __get/__set). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;103&quot; href=&quot;http://bugs.php.net/43182&quot;&gt;#43182&lt;/a&gt; (file_put_contents() LOCK_EX does not work properly on file truncation). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;104&quot; href=&quot;http://bugs.php.net/43175&quot;&gt;#43175&lt;/a&gt; (__destruct() throwing an exception with __call() causes segfault). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;105&quot; href=&quot;http://bugs.php.net/43128&quot;&gt;#43128&lt;/a&gt; (Very long class name causes segfault). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;106&quot; href=&quot;http://bugs.php.net/43105&quot;&gt;#43105&lt;/a&gt; (PHP seems to fail to close open files). (Hannes)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;107&quot; href=&quot;http://bugs.php.net/43092&quot;&gt;#43092&lt;/a&gt; (curl_copy_handle() crashes with &amp;gt; 32 chars long URL). (Jani)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;108&quot; href=&quot;http://bugs.php.net/43003&quot;&gt;#43003&lt;/a&gt; (Invalid timezone reported for DateTime objects constructed using a timestamp). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;109&quot; href=&quot;http://bugs.php.net/42978&quot;&gt;#42978&lt;/a&gt; (mismatch between number of bound params and values causes a crash in pdo_pgsql). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;110&quot; href=&quot;http://bugs.php.net/42945&quot;&gt;#42945&lt;/a&gt; (preg_split() swallows part of the string). (Nuno)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;111&quot; href=&quot;http://bugs.php.net/42937&quot;&gt;#42937&lt;/a&gt; (__call() method not invoked when methods are called on parent from child class). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;112&quot; href=&quot;http://bugs.php.net/42841&quot;&gt;#42841&lt;/a&gt; (REF CURSOR and oci_new_cursor() crash PHP). (Chris)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;113&quot; href=&quot;http://bugs.php.net/42838&quot;&gt;#42838&lt;/a&gt; (Wrong results in array_diff_uassoc) (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;114&quot; href=&quot;http://bugs.php.net/42779&quot;&gt;#42779&lt;/a&gt; (Incorrect forcing from HTTP/1.0 request to HTTP/1.1 response). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;115&quot; href=&quot;http://bugs.php.net/42736&quot;&gt;#42736&lt;/a&gt; (xmlrpc_server_call_method() crashes). (Tony)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;116&quot; href=&quot;http://bugs.php.net/42692&quot;&gt;#42692&lt;/a&gt; (Procedure 'int1' not present with doc/lit SoapServer). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;117&quot; href=&quot;http://bugs.php.net/42548&quot;&gt;#42548&lt;/a&gt; (mysqli PROCEDURE calls can't return result sets). (Hartmut)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;118&quot; href=&quot;http://bugs.php.net/42505&quot;&gt;#42505&lt;/a&gt; (new sendmail default breaks on Netware platform) (Guenter Knauf)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;119&quot; href=&quot;http://bugs.php.net/42369&quot;&gt;#42369&lt;/a&gt; (Implicit conversion to string leaks memory). (David C., Rob).&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;120&quot; href=&quot;http://bugs.php.net/42272&quot;&gt;#42272&lt;/a&gt; (var_export() incorrectly escapes char(0)). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a set=&quot;yes&quot; linkindex=&quot;121&quot; href=&quot;http://bugs.php.net/42261&quot;&gt;#42261&lt;/a&gt; (Incorrect lengths for date and boolean data types). (Ilia)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;122&quot; href=&quot;http://bugs.php.net/42190&quot;&gt;#42190&lt;/a&gt; (Constructing DateTime with TimeZone Indicator invalidates DateTimeZone). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;123&quot; href=&quot;http://bugs.php.net/42177&quot;&gt;#42177&lt;/a&gt; (Warning &quot;array_merge_recursive(): recursion detected&quot; comes again...). (Felipe)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;124&quot; href=&quot;http://bugs.php.net/41941&quot;&gt;#41941&lt;/a&gt; (oci8 extension not lib64 savvy). (Chris)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;125&quot; href=&quot;http://bugs.php.net/41828&quot;&gt;#41828&lt;/a&gt; (Failing to call RecursiveIteratorIterator::__construct() causes a sefault). (Etienne)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;126&quot; href=&quot;http://bugs.php.net/41599&quot;&gt;#41599&lt;/a&gt; (setTime() fails after modify() is used). (Derick)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;127&quot; href=&quot;http://bugs.php.net/41562&quot;&gt;#41562&lt;/a&gt; (SimpleXML memory issue). (Rob)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;128&quot; href=&quot;http://bugs.php.net/40013&quot;&gt;#40013&lt;/a&gt; (php_uname() does not return nodename on Netware (Guenter Knauf)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;129&quot; href=&quot;http://bugs.php.net/38468&quot;&gt;#38468&lt;/a&gt; (Unexpected creation of cycle). (Dmitry)&lt;/li&gt;&lt;li&gt;Fixed bug &lt;a linkindex=&quot;130&quot; href=&quot;http://bugs.php.net/32979&quot;&gt;#32979&lt;/a&gt; (OpenSSL stream-&amp;gt;fd casts broken in 64-bit build) (stotty at tvnet dot hu)&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;</content:encoded><description>五一劳动节,PHP5.2.6版本发布.修复4个安全方面的问题,把 PCRE 更新到了版本 7.6,同时还修复了130多处BUG

推荐有需要的用户更新. 点击进入可下载新版本及查看此PHP版本修复的BUG...</description><category>PHP5研究[新]</category><pubDate>Fri, 02 May 2008 12:56:58 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/PHP_5.2.6_update.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/PHP_5.2.6_update.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/PHP_5.2.6_update.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685636/1235221</fs:itemid></item><item><title>Ajax+PHP简单入门教程</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685637/1235221/1/item.html</link><content:encoded>&lt;p&gt;Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成，这一杰出的方法可以将笨拙的 Web
界面转化成交互性的 Ajax
应用程序。对于Ajax，最核心的一个对象是XMLHttpRequest，所有的Ajax操作都离不开对这个对象的操作。&lt;/p&gt;
&lt;p&gt;首先我们来了解怎么在javascript中创建这个对象：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;XMLHttpRequest&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;这行简单的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中，创建了 &lt;code&gt;XMLHttpRequest&lt;/code&gt; 对象。但是对于市场占有率达到70%的IE来说，这种方法是不行的，而不同的IE版本还有不同的创建方法，所以我们需要在IE下面使用下面两种创建对象的办法：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ActiveXObject&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;Msxml2.XMLHTTP&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//针对较新的浏览器&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;err&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ActiveXObject&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;Microsoft.XMLHTTP&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//针对较老的浏览器&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;err2&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;即使这样，我们也无法预料有些浏览器可能无法创建这个对象，所以在创建不成功的情况下，我们还要加上一句：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;无法创建 XMLHttpRequest 对象！&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;结合起来就是：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;XMLHttpRequest&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;trymicrosoft&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ActiveXObject&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;Msxml2.XMLHTTP&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;othermicrosoft&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ActiveXObject&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;Microsoft.XMLHTTP&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;failed&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;无法创建 XMLHttpRequest 对象！&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;然后，让我们建立一个函数getInfo()，打开异步请求：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getInfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Teal;&quot;&gt;document&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getElementById&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//获得表单的数据&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;/ajax/1.php?n=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; + &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;escape&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;GET&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//这里的true代表是异步请求&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;一旦用 &lt;code&gt;open()&lt;/code&gt; 配置好之后，就可以发送请求了。虽然可以使用 &lt;code&gt;send()&lt;/code&gt; 发送数据，但也能通过 URL 本身发送数据。事实上，在大部分&lt;code&gt;GET&lt;/code&gt; 请求中，用 URL 发送数据要容易得多，所以这里用null作为send()的参数就可以了。url地址里面的php文件是被请求来处理所需要数据的php文件，就像我们平时用PHP的时候一样，后面的参数可以加多个，并用&amp;amp;分隔开来。&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;在发送了数据之后，我们需要用回调方法来获得服务器的状态，所以就用到了&lt;code&gt;onreadystatechange&lt;/code&gt; 属性。&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;onreadystatechange&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;updatePage&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;此语句已经要放在send()语句前面，这样才会有效，后面的updatePage是处理返回信息的一个函数。完整的getInfo()如下：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getInfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Teal;&quot;&gt;document&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getElementById&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//获得表单的数据&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;/ajax/1.php?n=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; + &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;escape&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;GET&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//这里的true代表是异步请求&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;onreadystatechange&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;updatePage&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;我们还需要在html里面来触发这个函数：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 139);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 139);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 139);&quot;&gt;onblur&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;getInfo()&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 139);&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;text&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;下面我们需要来编写updatePage()这个函数：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;updatePage&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(){&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlhttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;readyState&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;response&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlhttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;responseText&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Teal;&quot;&gt;document&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getElementById&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;city&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;response&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;上面这段代码里面的readyState是服务器返回的一个状态，4这个状态表示请求已经发送，并处理完毕。responseText是获得服务器返回的信息，然后通过javascript赋给ID为city的表单。&lt;/p&gt;
&lt;p&gt;到此，一个简单的Ajax程序就完成了，完整的javascript代码如下：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;XMLHttpRequest&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;trymicrosoft&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ActiveXObject&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;Msxml2.XMLHTTP&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;othermicrosoft&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ActiveXObject&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;Microsoft.XMLHTTP&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;failed&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;无法创建 XMLHttpRequest 对象！&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getInfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Teal;&quot;&gt;document&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getElementById&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//获得表单的数据&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;/ajax/1.php?n=&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; + &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;escape&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;num&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;GET&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 165, 0);&quot;&gt;//这里的true代表是异步请求&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;onreadystatechange&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;updatePage&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlHttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;updatePage&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(){&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlhttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;readyState&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;response&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xmlhttp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;responseText&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Teal;&quot;&gt;document&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;getElementById&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;city&lt;/span&gt;&lt;span style=&quot;color: rgb(139, 0, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;response&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;这里还缺一个php文件，由于处理的方式不一样，写法也不一样，而且这不是Ajax的主要部分，所以这里就不放代码了。只要记住php是输出并返回所需要的数据就可以了。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;好久没更新,今天看到这教程,对初学者挺适合.&lt;br&gt;&lt;/p&gt;</content:encoded><description>Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成，这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。对于Ajax，最核心的一个对象是XMLHttpRequest，所有的Ajax操作都离不开对这个对象的操作。</description><category>Web标准</category><pubDate>Fri, 14 Mar 2008 11:08:48 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/Ajax_PHP.htm#comments</comments><guid isPermaLink="false">http://phpv.net/html/Ajax_PHP.htm</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/Ajax_PHP.htm</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685637/1235221</fs:itemid></item><item><title>卡巴斯基7.0杀毒软件免费赠送一年激活码</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685638/1235221/1/item.html</link><content:encoded>领取激活码方法:&lt;br&gt;1.打开 &lt;a target=&quot;_blank&quot; href=&quot;bbs.kaspersky.com.cn&quot;&gt;bbs.kaspersky.com.cn&lt;/a&gt; ,注册一个新帐户;&lt;br&gt;2.注册成功后,会把你导向到一个“大雪无情，卡巴有情”反病毒赠送活动页面;&lt;br&gt;3.在页面上输入你的正确邮箱地址，点提交！&lt;br&gt;4.去你的邮箱找一封由kaba365@pcstars.com.cn发给你的激活码邮件,按邮件提示就能领取到激活码了.&lt;br&gt;&lt;br&gt;&lt;br&gt;卡巴斯基7.0软件下载地址:&lt;a target=&quot;_blank&quot; href=&quot;http://www.kaspersky.com.cn/KL-Downloads/KL-Product7.0.htm&quot;&gt;http://www.kaspersky.com.cn/KL-Downloads/KL-Product7.0.htm&lt;/a&gt;&lt;br&gt;&lt;br&gt;注意事项:&lt;br&gt;每个电子邮件地址只能申请一个激活码，并请在收到激活码后&lt;font color=&quot;red&quot;&gt;&lt;strong&gt;两周内&lt;/strong&gt;&lt;/font&gt;激活使用，过期将无法激活。&lt;br&gt;
港澳台地区及海外用户不能参加！&lt;br&gt;</content:encoded><description>免费领取一年卡巴斯基7.0杀毒软件激活码的方法.</description><category>非PHP技术话题</category><pubDate>Thu, 31 Jan 2008 14:51:11 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/1593.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/1593.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/1593.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685638/1235221</fs:itemid></item><item><title>JavaScript程序编码规范 中文版</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685639/1235221/1/item.html</link><content:encoded>&lt;font size=&quot;4&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;前言&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;Any violation to this guide is allowed if it enhances readability.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;所有的代码都要变成可供他人容易阅读的。&lt;/span&gt;&lt;br&gt;&lt;br&gt;软件的长期价值直接源于其编码质量。在它的整个生命周期里，一个程序可能会被许多人阅读或修改。如果一个程序可以清晰的展现出它的结构和特征，那就能减少在以后对其进行修改时出错的可能性。&lt;br&gt;&lt;br&gt;编程规范可以帮助程序员们增加程序的健壮性。所有的 JavaScript 代码都是暴露给公众的。所以我们更应该保证其质量。保持整洁很重要。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;JavaScript文件&lt;/font&gt;&lt;br&gt;&lt;br&gt;JavaScript 程序应独立保存在后缀名为 .js 的文件中。&lt;br&gt;&lt;br&gt;JavaScript 代码不应该被包含在 HTML 文件中，除非这是段特定只属于此部分的代码。在 HTML 中的JavaScript代码会明显增加文件大小，而且也不能对其进行缓存和压缩。&lt;br&gt;&lt;br&gt;filename.js 应尽量放到 body 的后面。这样可以减少因为载入脚本而造成其他页面内容载入也被延迟的问题。也没有必要使用 language 或者 type 属性。MIME 类型是由服务器而非 scripttag 来决定的。（手气不错：个人认为按照 Web 标准而言，建议指定 type 属性，并将 &amp;lt;script&amp;gt; 放到页面的 &amp;lt;head&amp;gt; 中。）&lt;br&gt;&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;缩进&lt;/font&gt;&lt;br&gt;&lt;br&gt;缩进的单位为四个空格。避免使用 Tab 键来缩进。因为始终没有个统一的 Tab 长短标准。虽然使用空格会增加文件的大小，但在局域网中几乎可以忽略，且在最小化过程中也可被消除掉。&lt;br&gt;&lt;br&gt;&lt;font size=&quot;4&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;每行长度&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;避免每行超过 80 个字符。当一条语句一行写不下时，请考虑折行。在运算符号，最好是逗号后换行。在运算符后换行可以减少因为复制粘贴产生的错误被分号掩盖的几率。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;注释&lt;/font&gt;&lt;br&gt;&lt;br&gt;不要吝啬注释。给以后需要理解你的代码的人们（或许就是你自己）留下信息是非常有用的。注释应该和它们所注释的代码一样是书写良好且清晰明了。偶尔的小幽默就更不错了。记得要避免冗长或者情绪化。&lt;br&gt;&lt;br&gt;及时地更新注释也很重要。错误的注释会让程序更加难以阅读和理解。&lt;br&gt;&lt;br&gt;让注释有意义。重点在解释那些不容易立即明白的逻辑上。不要把读者的时间浪费在阅读类似于:&lt;br&gt;&lt;br&gt;i = 0; // 让 i 等于 0&lt;br&gt;&lt;br&gt;使用单行注释。块注释用于注释正式文档和无用代码。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;变量声明&lt;/font&gt;&lt;br&gt;&lt;br&gt;所有的变量必须在使用前进行声明。JavaScript 并不强制必须这么做，但这么做可以让程序易于阅读，且也容易发现那些没声明的变量(它们会被编译成全局变量)。&lt;br&gt;&lt;br&gt;将 var 语句放在函数的首部。&lt;br&gt;&lt;br&gt;最好把每个变量的声明语句单独放到一行，并加上注释说明。所有变量按照字母排序。&lt;br&gt;&lt;br&gt;var currentEntry; // 当前选择项&lt;br&gt;var level; // 缩进程度&lt;br&gt;var size; // 表格大小&lt;br&gt;&lt;br&gt;JavaScript 没有块范围，所以在块里面定义变量很容易引起 C/C++/Java 程序员们的误解。在函数的首部定义所有的变量。&lt;br&gt;&lt;br&gt;尽量减少全局变量的使用。不要让局部变量覆盖全局变量。&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;&lt;br&gt;函数声明&lt;/font&gt;&lt;br&gt;&lt;br&gt;所有的函数在使用前进行声明。 内函数的声明跟在 var 语句的后面。这样可以帮助判断哪些变量是在函数范围内的。&lt;br&gt;&lt;br&gt;函数名与“(”（左括号）之间不应该有空格。“)”（右括号）与开始程序体的“{”（左大括号）之间应插入一个空格。函数程序体应缩进四个空格。“}”（右大括号）与声明函数的那一行代码头部对齐。&lt;br&gt;&lt;br&gt;function outer(c，d) {&lt;br&gt;var e = c * d;&lt;br&gt;&lt;br&gt;function inner(a， b) {&lt;br&gt;return (e * a) + b;&lt;br&gt;}&lt;br&gt;&lt;br&gt;return inner(0， 1);&lt;br&gt;}&lt;br&gt;&lt;br&gt;下面这种书写方式可以在 JavaScript 中正常使用，因为在 JavaScript 中，函数和对象的声明可以放到任何表达式允许的地方。且它让内联函数和混合结构具有最好的可读性。&lt;br&gt;&lt;br&gt;function getElementsByClassName(className) {&lt;br&gt;&lt;br&gt;var results = [];&lt;br&gt;&lt;br&gt;walkTheDOM(document.body, function (node) {&lt;br&gt;&lt;br&gt;var a; // array of class names&lt;br&gt;&lt;br&gt;var c = node.className; // the node's classname&lt;br&gt;&lt;br&gt;var i; // loop counter&lt;br&gt;&lt;br&gt;// If the node has a class name, then split it into a list of simple names.&lt;br&gt;&lt;br&gt;// If any of them match the requested name, then append the node to the set of results.&lt;br&gt;&lt;br&gt;if (c) {&lt;br&gt;&lt;br&gt;a = c.split(' ');&lt;br&gt;&lt;br&gt;for (i = 0; i &amp;lt; a.length; i += 1) {&lt;br&gt;&lt;br&gt;if (a[i] === className) {&lt;br&gt;&lt;br&gt;results.push(node);&lt;br&gt;&lt;br&gt;break;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;});&lt;br&gt;&lt;br&gt;return results;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;如果函数是匿名函数，则在 function 和 “(”（左括号）之间应有一个空格。如果省略了空格，否则会让人感觉函数名叫作 function。&lt;br&gt;&lt;br&gt;&lt;br&gt;div.onclick = function (e) {&lt;br&gt;&lt;br&gt;return false;&lt;br&gt;&lt;br&gt;};&lt;br&gt;&lt;br&gt;that = {&lt;br&gt;&lt;br&gt;method: function () {&lt;br&gt;&lt;br&gt;return this.datum;&lt;br&gt;&lt;br&gt;},&lt;br&gt;&lt;br&gt;datum: 0&lt;br&gt;&lt;br&gt;};&lt;br&gt;&lt;br&gt;尽量不使用全局函数。&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;&lt;br&gt;命名&lt;/font&gt;&lt;br&gt;&lt;br&gt;变量名应由 26 个大小写字母（A..Z，a..z），10 个数字（0..9），和 “_”（下划线）组成。避免使用国际化字符（如中文），因为它们不是在任何地方都可以被方便的阅读和理解。不要在命名中使用 “$”（美元符号）或者 “”（反斜杠）。&lt;br&gt;&lt;br&gt;不要把 “_”（下划线）作为变量名的第一个字符。它有时用来表示私有变量，但实际上 JavaScript 并没提供私有变量的功能。如果私有变量很重要，那么使用 私有成员 的形式。应避免使用这种容易让人误解的命名习惯。&lt;br&gt;&lt;br&gt;大多数的变量名和方法命应以小写字母开头。&lt;br&gt;&lt;br&gt;必须与 new 共同使用的构造函数名应以大写字母开头。当 new 被省略时 JavaScript 不会有任何编译错误或运行错误抛出。忘记加 new 时会让不好的事情发生（比如被当成一般的函数），所以大写构造函数名是我们来尽量避免这种情况发生的唯一办法。&lt;br&gt;&lt;br&gt;全局变量应该全部大写。（JavaScript 没有宏或者常量，所以不会因此造成误会）&lt;br&gt;&lt;font size=&quot;4&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;语句&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;简单语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;每一行最多只包含一条语句。把 “,” （分号）放到每条简单语句的结尾处。注意一个函数赋值或对象赋值语句也是赋值语句，应该以分号结尾。&lt;br&gt;&lt;br&gt;JavaScript 可以把任何表达式当作一条语句。这很容易隐藏一些错误，特别是误加分号的错误。只有在赋值和调用时，表达式才应被当作一条单独的语句。&lt;br&gt;&lt;font size=&quot;3&quot;&gt;&lt;br style=&quot;color: rgb(0, 0, 205);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 205);&quot;&gt;复合语句&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;复合语句是被包含在 “{ }”（大括号）的语句序列。&lt;br&gt;&lt;br&gt;被括起的语句必须多缩进四个空格。&lt;br&gt;&lt;br&gt;“{”（左大括号）应在复合语句其实行的结尾处。&lt;br&gt;&lt;br&gt;“}”（右大括号）应与“{”（左大括号）的那一行的开头对齐。&lt;br&gt;&lt;br&gt;大括号应该在所有复合语句中使用，即使只有一条语句，当它们是控制结构的一部分时，比如一个 if 或者 for 语句。这样做可以避免以后添加语句时造成的错误。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;4&quot;&gt;标示&lt;/font&gt;&lt;br&gt;&lt;br&gt;语句标示是可选的，只有以下语句必须被标示：while、do、for、switch。&lt;br&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 205);&quot;&gt;return 语句&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;一条有返回值的 return 语句不要使用“( )”（括号）来括住返回值。如果返回表达式，则表达式应与 return 关键字在同一行，以避免误加分号错误。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;if 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;if 语句应如以下格式:&lt;br&gt;&lt;br&gt;if (condition){&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;if (condition) {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} else {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;if (condition) {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} else if (condition) {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} else {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;for 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;for 语句应如以下格式:&lt;br&gt;&lt;br&gt;for (initialization;condition; update) {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;for (variable in object) if (filter) {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;第一种形式的循环用于已经知道相关参数的数组循环。&lt;br&gt;&lt;br&gt;第二种形式应用于对象中。Object 原型中的成员将会被包含在迭代器中。通过预先定义 hasOwnProperty方法来区分真正的 object 成员是个不错方法：&lt;br&gt;&lt;br&gt;for (variablein object) if (object.hasOwnProperty(variable)){&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;while 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;while 语句应如以下格式:&lt;br&gt;&lt;br&gt;while (condition){&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;do 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;do 语句应如以下格式:&lt;br&gt;&lt;br&gt;do {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} while (condition);&lt;br&gt;&lt;br&gt;不像别的复合语句，do 语句总是以 “;”（分号）结尾。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;switch 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;switch 语句应如以下格式:&lt;br&gt;&lt;br&gt;switch (expression){&lt;br&gt;&lt;br&gt;case expression:&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;default:&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;每个 case 与 switch 对齐。这可避免过分缩进。&lt;br&gt;&lt;br&gt;每一组 statements（除了default 应以 break，return，或者 throw 结尾），不要让它顺次往下执行。&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;&lt;br&gt;try 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;try 语句应如以下格式:&lt;br&gt;&lt;br&gt;try {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} catch (variable){&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;try {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} catch (variable){&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;} finally {&lt;br&gt;&lt;br&gt;statements;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;continue 语句&lt;/font&gt;&lt;br&gt;&lt;br&gt;避免使用 continue 语句。它很容易使得程序的逻辑过程晦涩难懂。&lt;br&gt;with 语句&lt;br&gt;&lt;br&gt;不要使用 with 语句。&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;&lt;br&gt;空白&lt;/font&gt;&lt;br&gt;&lt;br&gt;用空行来将逻辑相关的代码块分割开可以提高程序的可读性。空格应在以下情况时使用：&lt;br&gt;&lt;br&gt;跟在“(”（左括号）后面的关键字应被一个空格隔开。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(0, 0, 205);&quot; size=&quot;3&quot;&gt;while (true) {&lt;/font&gt;&lt;br&gt;&lt;br&gt;函数参数与“(”（左括号）之间不应该有空格。这能帮助区分关键字和函数调用。所有的二元操作符，除了“.”（点） 和“(”（左括号）和 “[”（左方括号）应用空格将其与操作数隔开。&lt;br&gt;&lt;br&gt;一元操作符与其操作数之间不应有空格，除非操作符是个单词，比如 typeof。&lt;br&gt;&lt;br&gt;每个在控制部分，比如 for 语句中的 “;”（分号）后须跟一个空格。&lt;br&gt;&lt;br&gt;每个 “,”（逗号）后应跟一个空格。&lt;br&gt;&lt;font size=&quot;4&quot;&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;另外的建议&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;{} 和[]&lt;/font&gt;&lt;br&gt;&lt;br&gt;使用 {} 代替 new Object()。使用 [] 代替 new Array() 。&lt;br&gt;&lt;br&gt;当成员名是一组有序的数字时使用数组来保存数据。当成员名是无规律的字符串或其他时使用对象来保存数据。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;，（逗号）操作符&lt;/font&gt;&lt;br&gt;&lt;br&gt;避免使用逗号操作符，除非在特定的 for 语句的控制部分。（这不包括那些被用在对象定义，数组定义，var 语句，和参数列表中的逗号分隔符。）&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;作用域&lt;/font&gt;&lt;br&gt;&lt;br&gt;在 JavaScript 中块没有域。只有函数有域。不要使用块，除非在复合语句中。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;赋值表达式&lt;/font&gt;&lt;br&gt;&lt;br&gt;避免在 if 和 while 语句的条件部分进行赋值。&lt;br&gt;&lt;br&gt;if (a = b) {&lt;br&gt;&lt;br&gt;是一条正确语句? 或者&lt;br&gt;&lt;br&gt;if (a == b) {&lt;br&gt;&lt;br&gt;才是对的? 避免这种不容易判断对错的结构。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;=== 和 !== 操作符。&lt;/font&gt;&lt;br&gt;&lt;br&gt;使用 === 和 !== 操作符会相对好点。== 和 != 操作符会进行类型强制转换。 特别是， 不要将 == 用于与错值比较（false，null，undefined，“”，0，NaN）。&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;&lt;br&gt;令人迷惑的加号和减号&lt;/font&gt;&lt;br&gt;&lt;br&gt;小心在 + 后紧跟 + 或 ++。这种形式很容易仍人迷惑。应插入括号以便于理解。&lt;br&gt;&lt;br&gt;total = subtotal + +myInput.value;&lt;br&gt;&lt;br&gt;最好能写成&lt;br&gt;&lt;br&gt;total = subtotal + (+myInput.value);&lt;br&gt;&lt;br&gt;这样 + + 不会被误认为是 ++。&lt;br&gt;&lt;br&gt;&lt;font style=&quot;color: rgb(148, 0, 211);&quot; size=&quot;3&quot;&gt;eval 是恶魔&lt;/font&gt;&lt;br&gt;&lt;br&gt;eval 是 JavaScript 中最容易被滥用的方法。避免使用它。&lt;br&gt;&lt;br&gt;eval 有别名。不要使用 function 构造器。不要给 setTimeout 或者 setInterval 传递字符串参数。&lt;br&gt;&lt;br&gt;&lt;br&gt;英文版：http://javascript.crockford.com/code.html&lt;br&gt;翻译:&lt;a target=&quot;_blank&quot; href=&quot;http://yeeyan.com/articles/view/cloudwater/4042&quot;&gt;手气不错&lt;/a&gt;&lt;br&gt;整理日期：2008年01月22日&lt;br&gt;&lt;br&gt;</content:encoded><description>所有的代码都要变成可供他人容易阅读的。编程规范可以帮助程序员们增加程序的健壮性。所有的 JavaScript 代码都是暴露给公众的。所以我们更应该保证其质量。保持整洁很重要。</description><category>非PHP技术话题</category><pubDate>Wed, 23 Jan 2008 15:08:05 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/1591.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/1591.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/1591.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685639/1235221</fs:itemid></item><item><title>PHP与正则表达系列之一: PHP 中的正则表达式</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685640/1235221/1/item.html</link><content:encoded>今天起,会开始弄一个PHP教程系列文章. 主要是针对正则表达式的.&lt;br&gt;大概的内容排序是这样安排的:&lt;br&gt;&lt;br&gt;1.&amp;nbsp; PHP 中的正则表达式&lt;br&gt;2.&amp;nbsp; 八个实用的PHP正则表达式&lt;br&gt;3.&amp;nbsp; 如何书写更易阅读的PHP正则表达式&lt;br&gt;4.&amp;nbsp; 半小时精通正则表达式&lt;br&gt;5.&amp;nbsp; 正则在文章采集系统中的应用及常见问题答疑&lt;br&gt;6.&amp;nbsp; ...更多策划中&lt;br&gt;&lt;br&gt;文章内容来源方面,有本站旧文重新整理而来,也有翻译英文文献而来(感谢在加拿大的!oEL同学),还有些是个人心得.&lt;br&gt;个人能力有限,肯定有一些错误,发现的朋友请给予提醒以及时更正. 不至误导新手. 如果文章能给大家一些参考,就很满足了. 也欢迎PHP爱好者&lt;a title=&quot;投稿&quot; target=&quot;_blank&quot; href=&quot;http://www.phpv.net/html/submit.html&quot;&gt;投稿&lt;/a&gt;,完善本系列,让新手少走一些弯路. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;PHP与正则表达系列之: PHP 中的正则表达式&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;

                                
                                                                                
            
             
                &lt;h3&gt;正则表达式简介及正则表达式在PHP中的作用&lt;/h3&gt;正
则表达式是一种表示规则的途经，在 PHP 中利用这些规则可以让你灵活变通地&lt;span style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;匹配&lt;/span&gt;、&lt;span style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;检验&lt;/span&gt;、&lt;span style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;替换&lt;/span&gt;以及&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;修改&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 205); font-weight: bold;&quot;&gt; 字符串&lt;/span&gt;。本文涉及到 PCRE
的基础，以及如何使用 preg_match()，preg_replace()，and preg_split()
函数。&lt;br&gt;&lt;br&gt;接下来就让我们从实例循序渐进地开始学习如何使用这些函数。&lt;br&gt;
&lt;div class=&quot;serendipity_entry_extended&quot;&gt;&lt;h3&gt;规则匹配 preg_match&lt;/h3&gt;利用 preg_match()，我们可以完成字符串的规则匹配。如果找到一个匹配，preg_match() 函数返回 1，否则返回 0。还有一个可选的第三参数可以让你把匹配的部分存在一个数组中。在验证数据时这个功能可以变得非常有用。&lt;br&gt;
&lt;blockquote&gt;$string = &quot;football&quot;;&lt;br&gt;
if (preg_match('/foo/', $string)) {&lt;br&gt;
	// 匹配正确&lt;br&gt;
}&lt;/blockquote&gt;&lt;br&gt;上面的例子将成功匹配，因为单词 football 里面包含 foo。现在我们来试一个更复杂的，例如验证一个 Email 地址。&lt;br&gt;
&lt;blockquote&gt;$string = &quot;first.last@domain.uno.dos&quot;;&lt;br&gt;
if (preg_match(&lt;br&gt;
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',&lt;br&gt;
$string)) {&lt;br&gt;
	// 验证Email地址&lt;br&gt;
}&lt;/blockquote&gt;&lt;br&gt;这个例子将验证出此 Email 地址为正确格式。现在让我们来看看这段正则表达式所代表的各种规则。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;PCRE 顾名思义，与在 Perl 中的正则表达式有相同的语法，所以每段正则表达式必须要有一对定界符。我们一般使用 &lt;b&gt;/&lt;/b&gt; 为定界符。&lt;br&gt;
&lt;br&gt;开头的 &lt;b&gt;^&lt;/b&gt; 和结尾的 &lt;b&gt;$&lt;/b&gt; 让PHP从字符串开头检查到结尾。假使没有 $，程序仍会匹配到 Email 的末尾。&lt;br&gt;
&lt;br&gt;
&lt;b&gt;[&lt;/b&gt; 和 &lt;b&gt;]&lt;/b&gt; 被用来限制许可输入类型。例如 a-z 允许所有的小写字母，A-Z 允许所有的大写字母，0-9 所有数字，等等，以及更多其他类型。 &lt;br&gt;
&lt;br&gt;
&lt;b&gt;{&lt;/b&gt; 和 &lt;b&gt;}&lt;/b&gt; 被用来限制期望的字符数。例如 {2,4} 表示字符串的每一节可以有 2-4 字符长度，像是 .com.cn 或 .info。在这里, &quot;&lt;b&gt;.&lt;/b&gt;&quot; 并不算一个字符，因为 {2,4} 之前定义的许可输入类型只有大小写字母，故此段只匹配大小写字母&lt;br&gt;
&lt;br&gt;
 &lt;b&gt;(&lt;/b&gt; 和 &lt;b&gt;)&lt;/b&gt; 被用来合并小节，并定义字符串中必须存在的字符。(a|b|c) 能够匹配 a 或 b 或 c。&lt;br&gt;
&lt;br&gt;(&lt;b&gt;.&lt;/b&gt;) 将匹配所有字符，而 [.] 只匹配 &quot;&lt;b&gt;.&lt;/b&gt;&quot; 本身。&lt;br&gt;
&lt;br&gt;要使用一些符号本身，必须在前增加一个 &lt;b&gt;&lt;/b&gt;。这些字符有：&lt;b&gt;( ) [ ] . * ? + ^ | $&lt;/b&gt;&lt;br&gt;
&lt;h3&gt;规则替换 preg_replace&lt;/h3&gt; preg_replace 允许你替换字符串中匹配到你定义的正则表达式。一个简单的注释移除功能：&lt;br&gt;&lt;br style=&quot;color: rgb(0, 0, 205);&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;preg_replace('[(/*)+.+(*/)]', '', $val);&lt;/span&gt;&lt;br&gt;&lt;br&gt;这段代码可以移除在 PHP 和 CSS 中使用 /* 注释 */ 格式的多多行注释。其中的三个参数分别为&lt;b&gt;正则表达式&lt;/b&gt;，要替换成的字符串和要替换的目标字符串（这里要做移除功能，所以是个空白字符串 -&amp;gt; ''）。如果你想匹配次级规则，可以使用 $0 代表全部匹配，$1、$2 等，以此类推代表分别的次级规则。&lt;br&gt;
&lt;h3&gt;规则分割preg_split&lt;/h3&gt;preg_split 可以将整段字符串按匹配到的正则表达式分割成 1、2或更多字符的多段。比如获取标签，无论是用空格还是逗号分隔的：&lt;br&gt;
&lt;blockquote&gt;$tags = preg_split('/[,]/', 'my,tags,unevenly,spaced');&lt;br&gt;
print_r($tags);&lt;/blockquote&gt;&lt;br&gt;正则表达式是一个很实用的技巧，让你可以专注于所期望得到的内容。&lt;br&gt;&lt;br&gt;但有时候一段正则表达式并不能让你如愿以偿得到预期的结果是件很烦人的事，所以我将在本系列的第二篇文章附上一些简单的语法指南希望能够帮到大家。&lt;br&gt;&lt;br&gt;如果你想跳过痛苦的练习过程而直接获得一些成功的喜悦感，请期待&lt;a href=&quot;http://www.phpv.net&quot;&gt;PHP5研究室&lt;/a&gt;推出的 &quot;PHP与正则表达系列之二: 八个实用PHP正则表达式&quot;。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;h3&gt;附:PCRE 语法指南&lt;br&gt;&lt;/h3&gt;
&lt;b&gt;/&lt;/b&gt; 定界符&lt;br&gt;
&lt;b&gt;^&lt;/b&gt; 字符串头&lt;br&gt;
&lt;b&gt;$&lt;/b&gt; 字符串尾&lt;br&gt;
&lt;b&gt;[a-z]&lt;/b&gt; 所有小写字母&lt;br&gt;
&lt;b&gt;[A-Z]&lt;/b&gt; 所有大写字母&lt;br&gt;
&lt;b&gt;[0-9]&lt;/b&gt; 所有数字&lt;br&gt;
&lt;b&gt;?&lt;/b&gt; 零或一个紧接前的字符&lt;br&gt;
&lt;b&gt;*&lt;/b&gt; 零或多个紧接前的字符&lt;br&gt;
&lt;b&gt;+&lt;/b&gt; 一或多个紧接前的字符&lt;br&gt;
&lt;b&gt;{4}&lt;/b&gt; 4个紧接前的字符&lt;br&gt;
&lt;b&gt;{4,8}&lt;/b&gt; 4-8个紧接前的字符&lt;br&gt;
&lt;b&gt;.&lt;/b&gt; 任意字符&lt;br&gt;
&lt;b&gt;(red|green|blue)&lt;/b&gt; Red 或 green 或 blue（红 或 绿 或 蓝）&lt;br&gt;
&lt;b&gt;s&lt;/b&gt; 空格&lt;br&gt;
&lt;b&gt;&lt;br&gt;特殊字符（需要在前加 ）&lt;/b&gt;&lt;br&gt;
&lt;b&gt;(   )   [   ]   .   *   ?   +   ^   |   $&lt;/b&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;</content:encoded><description>今天起,会开始弄一个PHP教程系列文章. 主要是针对正则表达式的.
大概的内容排序是这样安排的:

1.  PHP 中的正则表达式
2.  八个实用的PHP正则表达式
3.  如何书写更易阅读的PHP正则表达式
4.  半小时精通正则表达式
5.  正则在文章采集系统中的应用及常见问题答疑
6.  ...更多策划中

文章内容来源方面,有本站旧文重新整理而来,也有翻译英文文献而来(感谢在加拿大的!oEL同学),还有些是个人心得.
个人能力有限,肯定有一些错误,发现的朋友请给予提醒以及时更正. 不至误导新手. 如果文章能给大家一些参考,就很满足了. 也欢迎PHP爱好者投稿,完善本系列,让新手少走一些弯路.</description><category>PHP技术文档</category><pubDate>Mon, 14 Jan 2008 00:41:31 +0800</pubDate><author>esayr</author><comments>http://phpv.net/html/1590.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/1590.html</guid><dc:creator>esayr</dc:creator><fs:srclink>http://phpv.net/html/1590.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685640/1235221</fs:itemid></item><item><title>PHP 4.4.8发布</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685641/1235221/1/item.html</link><content:encoded>　　PHP开发小组近日发布了PHP
4.4.8。和之前的版本一样，这次发布依然是以改进4.4系统的安全性和稳定性为主，官方建议用户尽可能升级。由于这次的发布包括了PHP
4.4系列主要的补丁，所以可能会是最多一个正式的PHP
4.4发行版。但是，以后如果要解决一些安全漏洞的话，也可能继续发布修订版，直至2008年08月08日。&lt;br&gt;&lt;br&gt;　　PHP 4.4.8中主要的安全改进：&lt;br&gt;
&lt;ul&gt;&lt;li&gt;改进了MOPB-02-2007的补丁&lt;/li&gt;&lt;li&gt;修正了chunk_split()函数内部的整数溢出问题&lt;/li&gt;&lt;li&gt;修正了str[c]spn()函数内部的整数溢出问题&lt;/li&gt;&lt;li&gt;修正了因#41655导致的当open_basedir开启时的全局回归问题&lt;/li&gt;&lt;li&gt;修正了money_format()不能接受多个%i或%n参数的问题&lt;/li&gt;&lt;li&gt;向php.ini中添加了max_input_nesting_level指令，用于限制输入数据的嵌套层数&lt;/li&gt;&lt;li&gt;修正了MySQL处理INFILE LOCAL选项的行为，当open_basedir或safe_mode开启时，该选项会被禁用&lt;/li&gt;&lt;li&gt;修正了session.save_path和error_log会忽略open_basedir和safe_mode&lt;/li&gt;&lt;/ul&gt;
&lt;br&gt;　　更详细的更新列表，可参见PHP 4.4.8的&lt;a target=&quot;_blank&quot; href=&quot;http://cn.php.net/ChangeLog-4.php#4.4.8&quot;&gt;ChangeLog&lt;/a&gt;&lt;br&gt;&lt;br&gt;　　下载地址：&lt;a target=&quot;_blank&quot; style=&quot;font-weight: bold;&quot; href=&quot;http://cn.php.net/downloads.php#v4&quot;&gt;http://cn.php.net/downloads.php#v4&lt;/a&gt;&lt;img src=&quot;http://blog.donews.com/phpor/aggbug/1243450.aspx&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;昨天看到英文版的,就知道今天刘铭会出这个公告.果然等到了.&lt;br&gt;</content:encoded><description>　　PHP开发小组近日发布了PHP 4.4.8。和之前的版本一样，这次发布依然是以改进4.4系统的安全性和稳定性为主，官方建议用户尽可能升级。由于这次的发布包括了PHP 4.4系列主要的补丁，所以可能会是最多一个正式的PHP 4.4发行版。但是，以后如果要解决一些安全漏洞的话，也可能继续发布修订版，直至2008年08月08日。</description><category>PHP技术文档</category><pubDate>Sun, 06 Jan 2008 01:31:20 +0800</pubDate><author>admin</author><comments>http://phpv.net/html/1589.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/1589.html</guid><dc:creator>admin</dc:creator><fs:srclink>http://phpv.net/html/1589.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685641/1235221</fs:itemid></item><item><title>Web开发设计的五大准则</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685642/1235221/1/item.html</link><content:encoded>&lt;p&gt;如果仓促而为，设计一个专题或者网站一定会成为恶梦。Web设计需要遵循一些准则并有计划地去做。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;规则 #1 : 先出设计图&lt;/p&gt;
&lt;p&gt;这是必须的。不要假设设计图在你的头脑中就开始设计web，必须要放到纸上。可以这样做：&lt;/p&gt;
&lt;p&gt;1，&amp;nbsp; 拿尺子、笔和纸，按照具体的尺寸一行一行地画下来；&lt;/p&gt;
&lt;p&gt;2，&amp;nbsp; 记得考虑分界线的长度等，这样才能符合CSS的像素；&lt;/p&gt;
&lt;p&gt;3，&amp;nbsp; 记下设计的每一个细节免得忘记，如果把所有细节都累积到最后将是巨大的麻烦。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;规则 #2 :配色&lt;/p&gt;
&lt;p&gt;这是设计的核心部分，只有颜色搭配合适才能使你的网页看起来不错。首先要决定的是主色，也即你在网页中多数使用的颜色；然后选择跟主色调搭配的第二颜色；不要选择超过三种颜色不然你的设计看起来会很乱。如果你想要更多的颜色，可以使用浅色或者深色的阴影来搭配主色调。&lt;/p&gt;
&lt;p&gt;1，&amp;nbsp; 浏览十个跟你网页有同样主色调的网页；&lt;/p&gt;
&lt;p&gt;2，&amp;nbsp; 给几个人看你的配色方案并取得反馈；&lt;/p&gt;
&lt;p&gt;3，&amp;nbsp; 从浏览的网页和反馈你将更好地完善你的颜色搭配。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;规则 #3 : 从基本的版块开始构建&lt;/p&gt;
&lt;p&gt;定下配色和设计图之后，从最基本的框架开始构建——我的意思是说不添加任何文本。因为在版面中加入文本会使得架构混乱。方法如下：&lt;/p&gt;
&lt;p&gt;1，&amp;nbsp; 每一个版块设定边界线，这样能够看到具体的尺寸和位置；&lt;/p&gt;
&lt;p&gt;2，&amp;nbsp; 对不同的版块使用不同的颜色，在完成版块后再改成你想要的颜色。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;规则 #4 : 理清CSS&lt;/p&gt;
&lt;p&gt;不要在你的HTML文件中将styling元素搞得太复杂，不然等到你修改的时候你就不得不到处搜索。所以将所有styling元素归置在一个单独的CSS文档中。&lt;/p&gt;
&lt;p&gt;在styling之前理清你的CSS免得太过杂乱导致你多次重复同一件事。CSS支持继承，也即parent
block的style可以用于child
block.，充分利用这条特性。命名CSS分类名也要易懂易记。比如使用“main_content”而不是“div_1”。&lt;/p&gt;
&lt;p style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;规则 #5 : 制订多重 CSS 文档&lt;/p&gt;
&lt;p&gt;我们都知道，使用浏览器可以轻易地看到网页的输出，但使用另一浏览器的时候则可能发现输出不正常。这不是什么稀奇事儿，因为每个浏览器对HTML和CSS的处理方式都不一样。&lt;/p&gt;
&lt;p&gt;为避免这种情况，每个浏览器准备一个CSS文档，这样所有浏览器都可以正常浏览。虽然这有一定的难度，但是记着指望一个CSS文档来满足所有浏览器是不可能的。&lt;/p&gt;&lt;br&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;原文作者：nitinpai&lt;br&gt;原文链接：&lt;a target=&quot;_blank&quot; href=&quot;http://techtracer.com/2007/12/10/5-rules-for-a-good-web-design/&quot;&gt;5 Rules For A Good Web Design&lt;/a&gt;&lt;br&gt;译者：&lt;a target=&quot;_blank&quot; href=&quot;http://www.yeeyan.com/space/show/6559&quot;&gt;小猪哥&lt;/a&gt;&lt;/p&gt;</content:encoded><description>如果仓促而为，设计一个专题或者网站一定会成为恶梦。Web设计需要遵循一些准则并有计划地去做。规则一:先出设计图......</description><category>Web标准</category><pubDate>Wed, 02 Jan 2008 23:39:55 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/1588.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/1588.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/1588.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685642/1235221</fs:itemid></item><item><title>我的PHP编码规范</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685643/1235221/1/item.html</link><content:encoded>以下是我个人的PHP编码规范,仅供参考,欢迎拍砖.&lt;br&gt;&lt;br&gt;最后更新:2007-10-17 &lt;font color=&quot;#ff0000&quot;&gt;&lt;b&gt;&lt;br&gt;
&lt;br&gt;
PHP文件夹/文件命名规范&lt;/b&gt;&lt;/font&gt;&lt;br&gt;
-----------------------------------&lt;br&gt;
&lt;ul&gt;&lt;li&gt;
    为方便和兼容不同操作系统,PHP文件夹/文件名统一全部使用&lt;span style=&quot;background-color: rgb(255, 0, 0);&quot;&gt;小写&lt;/span&gt;,需要时可用下划线.
  &lt;/li&gt;&lt;li&gt;
    类文件,取名方式: &lt;font color=&quot;#3366ff&quot;&gt;功能.class.php&lt;/font&gt; 如
    &lt;font color=&quot;#3366ff&quot;&gt;db_mysql.class.php&lt;/font&gt;
  &lt;/li&gt;&lt;li&gt;
    函数文件取名 &lt;font color=&quot;#3366ff&quot;&gt;功能.fun.inc.php&lt;/font&gt; 如
    &lt;font color=&quot;#3366ff&quot;&gt;news.fun.inc.php&lt;/font&gt;
  &lt;/li&gt;&lt;li&gt;
    不能通过浏览器直接访问的php文件取名 &lt;font color=&quot;#3366ff&quot;&gt;**.inc.php&lt;/font&gt;
    并记得在第一行加入如下限制代码&lt;font color=&quot;#ff0000&quot;&gt;&lt;br&gt;
    !defined('INIT_PHPV') &amp;amp;&amp;amp; die('Denied');&amp;nbsp; &lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;font color=&quot;#3333ff&quot;&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;注意:以上规范,&lt;i&gt;不适用于&lt;/i&gt; 网上下载的类库文件.&lt;/span&gt;&lt;br&gt;&lt;br&gt;
&lt;/font&gt; &lt;font color=&quot;#3333ff&quot;&gt;常用的文件夹有:&lt;/font&gt;&lt;br&gt;
&lt;ol&gt;&lt;li&gt;
    admin&amp;nbsp; &lt;font color=&quot;#c0c0c0&quot;&gt;/管理&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    images &lt;font color=&quot;#c0c0c0&quot;&gt;/图片&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    templates &lt;font color=&quot;#c0c0c0&quot;&gt;/模板&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    includes &lt;font color=&quot;#c0c0c0&quot;&gt;/包含文件,各种函数及类库&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    script&amp;nbsp; &lt;font color=&quot;#c0c0c0&quot;&gt;/前台脚本和css&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    data&amp;nbsp; &lt;font color=&quot;#c0c0c0&quot;&gt;/网站数据 此文件夹可写. 内有缓存文件,错误日志等&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    upload &lt;font color=&quot;#c0c0c0&quot;&gt;/上传文件夹&lt;/font&gt;&lt;br&gt;
  &lt;/li&gt;&lt;li&gt;
    html &lt;font color=&quot;#c0c0c0&quot;&gt;/静态html目录&lt;/font&gt;&lt;br&gt;
    &lt;br&gt;
    &lt;font color=&quot;#ff0000&quot;&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;
    &lt;/font&gt;
  &lt;/li&gt;&lt;/ol&gt;
&lt;font color=&quot;#ff0000&quot;&gt;&lt;b&gt;PHP代码书写规范&lt;/b&gt;&lt;/font&gt;&lt;br&gt;
-------------------------&lt;br&gt;&lt;br&gt;
&lt;br&gt;
类名: 单词间首字母用大写,其它小写.如 class &lt;b&gt;MySql &lt;/b&gt;{.... }&lt;br&gt;
&lt;font color=&quot;#3366ff&quot;&gt; 类中的方法&lt;/font&gt;命名规范同上.&lt;br&gt;
&lt;br&gt;
函数命名:&lt;br&gt;
驼峰形式.即首单词字母小写,其它大写如&lt;br&gt;
&lt;font color=&quot;#cc33cc&quot;&gt; function &lt;/font&gt;&lt;font color=&quot;#cc33cc&quot;&gt;error ($msg) {...}&lt;br&gt;
function &lt;/font&gt;&lt;font color=&quot;#cc33cc&quot;&gt;sendMail ($email) {..}&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
变量也使用驼峰形式.如&lt;font color=&quot;#cc33cc&quot;&gt;&lt;br&gt;
$fileName = 'abc.txt';&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
sql语句则遵照标准写法&lt;br&gt;
关键字大写,表名和字段名最好用``引起来.查询参数用单引号引起来 如&lt;br&gt;
&lt;font color=&quot;#cc33cc&quot;&gt; $DB-&amp;gt;Query(&quot;SELECT * FROM `tablename' WHERE `uid'='1'
&quot;);&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
if...else用法:&lt;br&gt;
统一使用大括号,除非非常特殊的情况下,不能用 &lt;font color=&quot;#ff0000&quot;&gt;&lt;u&gt;endif;&lt;/u&gt;&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
大括号用法:&lt;br&gt;
推荐用&amp;nbsp;&lt;br&gt;
&lt;font color=&quot;#cc33cc&quot;&gt;function foo {&lt;br&gt;
&amp;nbsp;&amp;nbsp; ....&lt;br&gt;
}&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
也可用&lt;br&gt;
&lt;font color=&quot;#cc33cc&quot;&gt;function foo&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp; ....&lt;br&gt;
}&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
在PHP文件里,除了语言包注释配置文件,其它地方不能有中文.&lt;br&gt;
所有文件,保存格式为UTF8&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color=&quot;#ff0000&quot;&gt;&lt;b&gt; 数据库命名规范&lt;/b&gt;&lt;/font&gt;&lt;br&gt;
-------------------------&lt;br&gt;
表名全小写,如果需要,用下划线隔开单词&lt;br&gt;
字段名单词首字母大写&lt;br&gt;
如: 表user字段UserName&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</content:encoded><description>esayr个人的PHP编码规范,仅供参考.</description><category>PHP技术文档</category><pubDate>Mon, 24 Dec 2007 17:54:48 +0800</pubDate><author>抽烟的蚊子</author><comments>http://phpv.net/html/my_PHP_Coding_Standard.html#comments</comments><guid isPermaLink="false">http://phpv.net/html/my_PHP_Coding_Standard.html</guid><dc:creator>抽烟的蚊子</dc:creator><fs:srclink>http://phpv.net/html/my_PHP_Coding_Standard.html</fs:srclink><fs:srcfeed>http://phpv.net/rss.php</fs:srcfeed><fs:itemid>feedsky/phpv/~1232318/70685643/1235221</fs:itemid></item><item><title>在linux上配置 PHP+PDO-MSSQL 心得</title><link>http://item.feedsky.com/~feedsky/phpv/~1232318/70685644/1235221/1/item.html</link><content:encoded>WIN下用PHP读写MSSQL很简单,装上MSSQL客户端,再编辑PHP.INI开个扩展extension=php_mssql.dll ,就OK了. PDO的支持也是如此: extension=php_pdo_mssql.dll&lt;br&gt;&lt;br&gt;可是linux下就不是那么简单的事情.&lt;br&gt;有过linux下读写MSSQL数据库经验的朋友,对于freetds这个东西肯定不陌生. 配置相对也不复杂:&lt;br&gt;&lt;br&gt;&lt;b&gt;先到&lt;a href=&quot;http://www.freetds.org/&quot; target=&quot;_blank&quot;&gt;http://www.freetds.org/&lt;/a&gt;下载 源码包&lt;/b&gt;&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;代码:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 50px; text-align: left;&quot;&gt;$ cd /tmp&lt;br&gt;$ wget&lt;a href=&quot;ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz&quot; target=&quot;_blank&quot;&gt;ftp://ftp.ibiblio.org/pub/Linux/ALPH...tds-stable.tgz&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;&lt;b&gt;解压并安装&lt;/b&gt;&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;代码:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 114px; text-align: left;&quot;&gt;$ tar zxvf freetds-stable.tgz&lt;br&gt;$ ./configure --prefix=/usr/local/freetds&lt;br&gt;$ make&lt;br&gt;$ su root&lt;br&gt;Password:&lt;br&gt;$ make install&lt;/pre&gt;&lt;/div&gt;&lt;b&gt;然后编译PHP&lt;/b&gt;&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;代码:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 98px; text-align: left;&quot;&gt;$cd ../php-5.2.5&lt;br&gt;$./configure --prefix=/usr/local/php &lt;br&gt;--with-apxs2=/usr/local/apache/bin/apxs &lt;br&gt;.... 其它参数 &lt;br&gt;--with-mssql=/usr/local/freetds&lt;/pre&gt;&lt;/div&gt;(也可以用 --with-sybase=/usr/local/freetds)&lt;br&gt;&lt;br&gt;&lt;b&gt;make 并 make install&lt;/b&gt;&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;代码:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 82px; text-align: left;&quot;&gt;$ make&lt;br&gt;$ su root&lt;br&gt;Password:&lt;br&gt;# make install&lt;/pre&gt;&lt;/div&gt;&lt;b&gt;配置&lt;/b&gt;&lt;b&gt;freetds&lt;/b&gt;&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;代码:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 34px; text-align: left;&quot;&gt;# vim /usr/local/freetds/etc/freetds.conf&lt;/pre&gt;&lt;/div&gt;找到类似的行&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;代码:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 98px; text-align: left;&quot;&gt;# A typical Microsoft SQL Server 7.0 configuration&lt;br&gt;;[MyServer70]&lt;br&gt;;        host = 192.168.0.1&lt;br&gt;;        port = 1433&lt;br&gt;;        tds version = 7.0&lt;/pre&gt;&lt;/div&gt;把他们前面的冒号删除,把host改为你的MSSQL服务器主机名或IP地址.port改为自己的端口号,&lt;br&gt;tds version是SQLserver的版本,2000的是7.0 要是其它的版本,自己查查.&lt;br&gt;&lt;br&gt;注意:[&lt;font color=&quot;#ff0000&quot;&gt;MyServer70&lt;/font&gt;] 非常重要. 将会在PHP代码中代替 mssql_connect(&quot;host&quot;,&quot;sa&quot;,&quot;&quot;); 中的 host&lt;br&gt;关于freetds的其它如 ODBC/tsql/ 配置,请参考&lt;a href=&quot;http://www.freetds.org/userguide/&quot; target=&quot;_blank&quot;&gt;http://www.freetds.org/userguide/&lt;/a&gt;&lt;br&gt;&lt;b&gt;好了,完成后重启WEB服务. PHPINFO里看看,应该有如图的信息:&lt;br&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.phpv.net/uploadfile/month_200712/phpinfo_mssql_phpv_1.jpg&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;再用如下代码测试:&lt;/b&gt;&lt;br&gt;&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;PHP 代码:&lt;/div&gt;&lt;div class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 470px; height: 194px; text-align: left;&quot;&gt;&lt;code style=&quot;white-space: nowrap;&quot;&gt;&lt;!--php buffer start--&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;&amp;lt;?php&lt;br&gt;$conn&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;mssql_connect&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;&quot;MyServer70&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;&quot;sa&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;&quot;password&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;);&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;mssql_select_db&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;'dbname'&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$conn&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;);&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$msquery&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;&quot;select&amp;nbsp;firstname,lastname&amp;nbsp;from&amp;nbsp;table&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$msresults&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;mssql_query&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$msquery&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;);&lt;br&gt;while&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;mssql_fetch_array&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$msresults&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;))&amp;nbsp;{&lt;br&gt;echo&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;&quot;&amp;lt;li&amp;gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;.&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;'titleofcourtesy'&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;]&amp;nbsp;.&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;&quot;&amp;nbsp;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 187);&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 0, 0);&quot;&gt;'firstname'&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 119, 0);&quot;&gt;]&amp;nbsp;.&lt;/sp