<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>冒号空间 &#187; PHP</title>
	<atom:link href="http://blog.zhenghui.org/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zhenghui.org</link>
	<description>自然、人类、机器</description>
	<lastBuildDate>Fri, 30 Dec 2011 03:14:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>冒号课堂§6.4：后台脚本</title>
		<link>http://blog.zhenghui.org/2009/10/10/colon-class-6_4/</link>
		<comments>http://blog.zhenghui.org/2009/10/10/colon-class-6_4/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 01:38:35 +0000</pubDate>
		<dc:creator>hui</dc:creator>
				<category><![CDATA[冒号课堂]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[后台脚本]]></category>

		<guid isPermaLink="false">http://blog.zhenghui.org/?p=474</guid>
		<description><![CDATA[<b>后台脚本</b>——敏捷开发的利器（<em>简谈Perl、PHP、Python和Ruby</em>）<br/> • 语言的发展趋势一定是动静结合、刚柔并济<br/> • Perl凝练晦涩，Python优雅明晰，Ruby精巧灵动，PHP简明单纯<br/> • 或许优雅正是来自对细节和规范的重视<br/> • （RoR）与Ruby结合之后，便如一只猱身而上灵猫，立刻衬托出Java和.NET大象般的身影 [...]]]></description>
			<content:encoded><![CDATA[<h1 style="text-align: center"><span style="font-family: 宋体">冒号课堂</span></h1>
<strong><span style="font-size: 13pt; font-family: 宋体">第六课 语言简评(4)</span></strong>

<!-- below comes from generated html -->
<head><link rel="stylesheet" href="http://blog.zhenghui.org/css/colonclass.css" type="text/css"></head>

<div lang="zh-CN" class="article" title="后台脚本"><div class="titlepage"><div><div><h1 class="title"><a name="id600349"></a>6.4 后台脚本——敏捷开发的利器</h1></div><div><div class="author"><h3 class="author">郑晖</h3></div></div><div><div class="abstract" title="摘要"><p class="title"><b>摘要</b></p><p>简谈Perl、PHP、Python和Ruby</p></div></div></div><hr /></div><div class="toc"><p><b>目录</b></p><dl><dt><span class="section"><a href="#preview">！预览</a></span></dt><dt><span class="section"><a href="#question">？提问</a></span></dt><dt><span class="section"><a href="#explaination">：讲解</a></span></dt><dt><span class="section"><a href="#note">，插语</a></span></dt><dt><span class="section"><a href="#summary">。总结</a></span></dt><dt><span class="section"><a href="#reference">“”参考</a></span></dt></dl></div><div class="epigraph"><div class="literallayout"><p>操千曲而后晓声，观千剑而后识器</p></div><div class="attribution"><span>—<span class="attribution">《文心雕龙•知音》</span></span></div></div><div class="section" title="！预览"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="preview"></a>！预览</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
                    语言的发展趋势一定是动静结合、刚柔并济
                </p></li><li class="listitem"><p>
                    Perl凝练晦涩，Python优雅明晰，Ruby精巧灵动，PHP简明单纯
                </p></li><li class="listitem"><p>
                    或许优雅正是来自对细节和规范的重视
                </p></li><li class="listitem"><p>
                    （RoR）与Ruby结合之后，便如一只猱身而上灵猫，立刻衬托出Java和.NET大象般的身影
                </p></li></ul></div></div><div class="section" title="？提问"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="question"></a>？提问</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Perl、Python、Ruby和PHP各自有何特点？</p></li><li class="listitem"><p>为什么动态语言多作为轻量级的解决方案？</p></li><li class="listitem"><p>LAMP为什么受欢迎？</p></li><li class="listitem"><p>Ruby on Rails为什么会流行？</p></li><li class="listitem"><p>编程语言的发展趋势是什么？</p></li></ul></div></div><div class="section" title="：讲解"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="explaination"></a>：讲解</h2></div></div></div><p>
            “剩下四种动态语言，我们将之归为<span class="emphasis"><em>后台脚本语言</em></span>。”冒号说着画了张图（如图6-1所示）——
        </p><div class="figure"><a name="id603926"></a><p class="title"><b>图6-1. 常用编程语言的分类</b></p><div class="figure-contents"><div class="mediaobject"><img src="http://blog.zhenghui.org/img/colonclass/figure6-1.jpg" alt="常用编程语言的分类"></div></div></div><br class="figure-break"><p>
            引号听得仔细：“我记得您开始是把这些语言划分为C族静态语言、非C族静态语言和动态语言三类的。”
        </p><p>
            冒号解释：“那是按语法来划分的，偏重理论；现在是按应用来划分，偏重实践。”
        </p><p>
            句号旋即联想到：“这种分法貌似三层架构——前台语言对应表现层；平台语言和后台脚本语言对应业务逻辑层；系统语言对应数据层。”
        </p><p>
            “的确有几分神似，但千万不可混淆。”冒号提醒道，“三层架构（three-layer architecture）是模块设计上的<span class="emphasis"><em>逻辑划分</em></span><a class="link" href="#note1"><sup>[1]</sup></a>；而这里是按语言应用范围进行的<span class="emphasis"><em>物理划分</em></span>——与用户交互的是<span class="term">前台语言</span>，与机器交互的是<span class="term">系统语言</span>，介于其中的为前台提供服务同时又需要底层系统服务的是<span class="term">后台语言</span>。”
        </p><p>
            逗号询问：“后台语言又细分成平台语言与后台脚本语言？”
        </p><p>
            “这是基于程序（program）与脚本（script）、静态与动态而分的。”冒号进行说明，“其实Perl，PHP，Python和Ruby都有自己的<span class="term">虚拟机</span>（virtual machine），从这种意义上说它们也可作为平台语言。但在实际应用中，它们没有Java平台和.NET平台那种整合凝聚力和核心作用，通常作为轻量级的解决方案。”
        </p><p>
            问号想探个究竟：“这是由于它们都是动态语言的缘故吗？”
        </p><p>
            冒号回答：“理论上动态语言同样能承担大型应用，但实践上它们多作为粘合语言或用于中小型应用。用句时髦的话来形容，暂时还是<span class="emphasis"><em>主流的配角</em></span>或<span class="emphasis"><em>非主流的主角</em></span>。毕竟在运行效率、类型安全、可用资源、开发工具、技术支持等方面，它们与Java、C#相比尚有一定差距。另外它们同属‘草根’语言，虽有开源社区的大力支持，在影响力上与后者未可同日而语。”
        </p><p>
            叹号揣测：“说不定在不久的将来，动态语言也会成为主流的主角。”
        </p><p>
            “世易时移，殊难逆料。但有一点可以肯定，语言的发展趋势一定是动静结合、刚柔并济。”冒号断言，“一方面以Java和C#为代表的静态语言中嫁接了动态语言的枝条；另一方面以Java和.NET为代表的平台与动态语言的交壤地带也在逐步扩大。比如JRuby允许Ruby与Java之间互相调用，类似的还有Jython、IronRuby、IronPython等等。此外值得一提的是，动态语言最活跃的舞台当数LAMP，L-A-M-P。”
        </p><p>
            引号接茬：“L是Linux，A是Apache，M是MySQL，P是PHP。这四大组件形成了一个完整的开源网络开发平台。”
        </p><p>
            冒号补充道：“P也可指Perl、Python，甚至Ruby。”
        </p><p>
            逗号调侃：“可惜Ruby的‘R’比‘P’多了一根尾巴。”
        </p><p>
            “有人为了自圆其说，干脆让P表示‘Programming language’，这下所有语言都囊括其中了。老外就喜欢玩这种首字母缩略（acronym）的文字游戏，尤其LAMP正好还有‘灯’的含义，寓意开源世界的一盏明灯，他们一定更得意了。”冒号语带调笑，“前面我们曾提及，网络应用是生长动态语言最肥沃的土壤，而LAMP就是这块土壤上搭建的平台。作为网络平台，LAMP以其开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等特色而与Java平台和.NET平台鼎足三分，尤其受中小企业的欢迎。LAMP中Linux是操作系统，Apache是Web服务器，MySQL是数据库系统，而我们当下最关心的是‘P族语言’：PHP、Perl、Python还有Ruby。”
        </p><p>
            问号建议：“作为动态语言，它们的共性上节课已经谈了不少，能说说它们的个性吗？”
        </p><p>
            “它们的个性极为鲜明：<span class="strong"><strong>Perl凝练晦涩，Python优雅明晰，Ruby精巧灵动，PHP简明单纯</strong></span>。先看老大哥Perl，它博采众家之长，综合了C语言的结构、sed的正则表达式、AWK的关联数组（associative array）、Lisp的表（list）和Unix Shell的命令，此外还有借鉴了一种语言，你们知道是哪种吗？”冒号忽然卖了个关子。
        </p><p>
            叹号猜想：“应该是某种OOP语言吧。”
        </p><p>
            “Perl中确有不少C++的影子，但它的对象模型在5.0以后才引入，典型的半路出家，远不如前面的特征那么自然。与其说是一种自然而然的发展，不如说是在OOP潮流裹挟下的一种身不由己的迎合。真正深入骨髓的借鉴是自然语言。”冒号给出了答案，“我们提过，Perl的发明者Larry Wall是一名语言学家，他认为程序语言应该与自然语言一样，简洁自然、易读易写、表达多样、不拘一格。Perl还有不少的格言或哲学，使得编程语言一改严谨刻板的面孔，散发出浓郁的人文气息。”
        </p><p>
            逗号幽了一默：“我见过Perl的代码，人文气息没闻出来，但我怀疑有乙醚气息——看一会就觉得晕晕乎乎的。”
        </p><p>
            众人大笑。
        </p><p>
            “有人仅用一行Perl代码就实现了RSA算法，你看了那还不得当场晕倒啊？”冒号打趣道，“Perl的各种魔符好似一把把锋利的剪刀，做起文本裁剪之类的工作来游刃有余。这是它最大的长处，当初Perl就是Wall用来做Unix系统管理的，以后在CGI上的广泛应用也得益于此。这也赋予Perl极强的粘合力，因而有‘internet上的胶带（duct tape）<a class="link" href="#note2"><sup>[2]</sup></a>’的说法。它又号称瑞士军刀，精练而复杂，实用而强大。但Perl过于灵活自由，缺乏规范，影响了程序的可读性、一致性、整洁性和可维护性。不熟悉该语言的固然如读天书，熟悉语言而不熟悉问题的也颇费思量。相比之下Python被认为是Perl有力的挑战者，不仅在于它天然的OO设计和丰富的类库，更重要的是它对程序员友好度大大超过Perl。Python也有一系列的被称为禅（Zen）的哲学，不少与Perl是针锋相对的。比如：Perl认为做一件事可以有多种方法，而Python认为一件事应该最好只有一种方法；Perl追求语言的表现力，Python追求简单优雅；Perl喜欢隐性暗示，Python强调显性明示；Perl强调紧凑，Python强调松散； Perl的语法和语义丰富，Python的语法和语义简单而类库丰富。或许Python最让人不习惯的是它对空白符敏感性。”
        </p><p>
            引号感到惊奇：“对空白符敏感？这个倒真怪异。”
        </p><p>
            冒号见惯不怪：“虽然有点违反习惯，但非常符合Python一贯的规范简洁的风格——一方面从语法上保证了良好的编码风格；另一方面，每个代码块不再需要起始的大括号或begin/end之类的，减少了的代码行数。顺便插一句，另外一种优雅的语言Haskell同样对空白符敏感，或许优雅正是来自对细节和规范的重视吧。此外许多人抱怨Python中的自引用self太多，殊不知这也是它倡导显式表达的一种体现。总的看来，Python主要的问题还是在性能效率上不尽如人意。”
        </p><p>
            叹号好奇地问：“Ruby怎么样？据说它将取代Java。”
        </p><p>
            “不要轻言‘取代’二字。”冒号规诫道，“Java没有取代C++，也不会被Ruby取代，至多只是一种再分配。不过Ruby的确是门很可爱的语言，兼具Perl的表现力和Python的可读性。Ruby背后最具特色的理念是：关注程序员使用语言时的感受超过语言本身的功能。通俗地说，兵器的称手比锋利更重要；文雅地说，应给予程序员更多的人文关怀。就拿<span class="term">代码块</span>（block）和<span class="term">迭代器</span>（iterator）来说，虽然均非Ruby首创，但其语法最为赏心悦目。类似的例子比比皆是。Ruby的元编程能力特别强，也是它高度灵活的一种体现，但并不是所有人都喜欢这种风格。Ruby的主要弱点有两个：一个与Python类似，在性能上还有待提高；另一个是它的线程由<span class="term">用户空间</span>（user space）而不是<span class="term">内核空间</span>（kernel space）来管理<a class="link" href="#note3"><sup>[3]</sup></a>，不能充分利用多核或多CPU。真正让Ruby变得炙手可热的是web应用框架 Ruby on Rails（RoR）的成功，它们还催生了Java平台上的Groovy语言和Groovy on Grails框架。RoR奉行的CoC（Convention over Configuration）和DRY（Don&#8217;t repeat yourself ）原则以及MVC架构看似了无新意，但与Ruby结合之后，便如一只猱身而上灵猫，立刻衬托出Java和.NET大象般的身影。”
        </p><p>
            逗号有些怀疑：“框架竟然捧红了语言，框架真有这么重要吗？”
        </p><p>
            “如果web应用中动态页面较少或业务逻辑不复杂，框架的价值并不大。以前CGI编程就是往Perl之类的代码中嵌入HTML代码，如同Java中的Servlet；PHP则单纯地在HTML代码中插入PHP代码，如同早期的JSP。没有MVC，也不管什么三层架构，更没有ORM。但是——”冒号拖了个转折音，“一旦业务逻辑变得复杂，开发人员增多，手工作坊式编程开始捉襟见肘，引入框架这个流水生产线来提高生产力便是大势所趋。”
        </p><p>
            句号不解：“我想Perl、Python和PHP一定也有不少框架，Java中的框架更是泛滥成灾，何以独独RoR脱颖而出？”
        </p><p>
            冒号作出分析：“正值web2.0和敏捷开发（agile development）的概念流行之际，RoR将AJAX与Ruby组合在一起成为绝佳的回应。以前各种web应用框架是不少，但在RoR之前轻量级<span class="emphasis"><em>套餐式解决方案</em></span>并不多。Perl中的Catalyst、Python中的Pylon还有PHP中的CakePHP等应是效仿之作。因此RoR出现的时机可说是不早不晚，正当其时。此外，Perl和PHP由于过于流行，反而有不少的历史包袱，人们习惯了将表示逻辑和业务逻辑编织在一起。至于Java企业解决方案，框架太多，搭配组合更多，增加了选择的难度。即使采用最常见的轻量级SSH（Struts+Spring+Hibernate）组合，维护起来也比RoR繁杂得多。”
        </p><p>
            叹号愈发担忧：“听这意思，Java还是危险啊！”
        </p><p>
            “言之过早。”冒号不以为然，“首先RoR还有待进一步检验，目前无论是应用广度还是深度上尚无法与Java相提并论；其次Java在性能、安全等方面还是有不少优势，而这些对于大型和关键性的应用来说尤为重要。即使在中小型web应用中，RoR较之PHP还远为不及。”
        </p><p>
            问号接下话题：“PHP为何如此流行？”
        </p><p>
            “因为它简单、专一。”冒号答得很干脆，“与Python和Ruby一开始就定位通用语言不同，PHP是专为网络而生的。同早期的Perl相似，PHP起初主要起文本过滤器的作用，只不过Perl多处理文件流（file stream），而PHP多处理套接字流（socket stream）。PHP的语法简单，且为网络应用度身定造，受到网络开发人员的追捧当在情理之中。它虽很实用很流行，但并不完美。比如：变量名大小写敏感而函数名大小写不敏感；函数命名规则不一致；不支持namespace和unicode<a class="link" href="#note4"><sup>[4]</sup></a>；与Perl一样，它的对象模型不是先天的，直到PHP 5才真正完善；对线程支持不足；相比Perl、Python和Ruby，它的功能稍显单薄等等。”
        </p><p>
            引号突然想起：“我记得您在第一堂课提到PHP还能用于桌面应用。”
        </p><p>
            “不仅PHP，Perl、Python还有Ruby，都能作为前台语言来开发命令行或图形界面的应用。同样地，VB、Delphi和JavaScript也能作为后台语言。现代的程序语言既有自己的专长，又向通用化和全能化发展，以争取更多的生存空间。试想一下，现代的程序员又何尝不是如此呢？”言及于此，冒号收住话题，“语言简评告一段落，还有不少既有趣又有用的语言，在此就不一一评说了。我们看到，每种编程语言都有其独特的惯例用法和哲学理念，它们与编程范式一道形成了语言的编程风格。体悟愈深者编程语感愈强，思维与语言愈交融无碍，渐从必然王国走向自由王国。”
        </p><p>
            逗号满怀憧憬：“那是不是一种人剑合一的境界？”
        </p><p>
            “或许人器合一更准确吧，程序员可不能只会一种兵器哟。”冒号故意抠他的字眼，“现在请大家每人写一句对本节课的感言。”
        </p><p>
            众人沉思片刻，齐齐挥笔而就——
        </p><p>
            <span class="emphasis"><em>叹号——没有最好的语言，只有最合适的语言。</em></span>
        </p><p>
            <span class="emphasis"><em>问号——没有糟糕的语言，只有糟糕的程序员。</em></span>
        </p><p>
            <span class="emphasis"><em>逗号——没有一种语言是万能的，只会一种语言是万万不能的。</em></span>
        </p><p>
            <span class="emphasis"><em>引号——废除对语言的宗教信仰，建立对语言的哲学思维。</em></span> 
        </p><p>
            <span class="emphasis"><em>句号——编程就是在人脑和电脑之间寻找最佳平衡点的过程。</em></span>
        </p><p>
            冒号读罢大悦，顺手一掌拍出五记马屁：“精彩之极！可谓字字珠玑、句句联璧啊。兹决定，给诸位的奖赏是——立时下课！”
        </p><p>
            众人欣然领赏而去。
        </p></div><div class="section" title="，插语"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="note"></a>，插语</h2></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><a name="note1"></a>
                    有两种三层架构，一种是three-layer architecture，一种是three-tier architecture。它们经常换用，但其实是有分别的：前者仅仅在逻辑进行划分，而后者在物理上也进行了划分——不同层次的模块运行在不同的主机上。
                </p></li><li class="listitem"><p><a name="note2"></a>
                    不少地方译作“输送带”、“传送带”，因为duct有“输送管”、“导管”之意，于是想当然地认为这表明Perl在internet上起着输送作用。殊不知“duct tape”专指一种万能的粘性极强的胶带，用以比喻Perl的粘合力。
                </p></li><li class="listitem"><p><a name="note3"></a>
                    这类线程被称为绿色线程（green thread），也称伪线程。据称Ruby2.0将支持原生线程（native thread）。
                </p></li><li class="listitem"><p><a name="note4"></a>
                    PHP将在5.3.0支持namespace，将在6.0支持unicode。
                </p></li></ol></div></div><div class="section" title="。总结"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="summary"></a>。总结</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
                    比起Java平台和.NET平台，动态语言轻便灵活、开发效率高，但整合凝聚力还不够，在运行效率、类型安全、可用资源、开发工具、技术支持以及影响力等方面也有一定差距，故通常作为轻量级的解决方案。
                </p></li><li class="listitem"><p>
                    LAMP是由Linux、Apache、MySQL和包括PHP、Perl、Python或Ruby在内的脚本语言组成的网络开发平台，具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点。
                </p></li><li class="listitem"><p>
                    Perl精练、复杂、强大、灵活、自由、隐晦、表现力强，但规范性、可读性、一致性、整洁性和可维护性较差。
                </p></li><li class="listitem"><p>
                    Python优雅规范、简洁明晰、易学易用、类库丰富，但效率稍差，有些人不喜欢它对空白符敏感的特性。
                </p></li><li class="listitem"><p>
                    Ruby语法精巧、高度灵活，兼具Perl的表现力和Python的可读性，尤其注重程序员的感受，但其性能和线程模型尚有待改进。
                </p></li><li class="listitem"><p>
                    PHP简单、专一、实用、流行，在但相比其他三种语言，在语法和功能上稍有欠缺。
                </p></li><li class="listitem"><p>
                    RoR是一种轻量级套餐式的web应用解决方案，是由好的设计（MVC架构和CoC、DRY原则）加上好的语言（Ruby）在好的时机（web2.0和敏捷开发风行之际）打造出的好的框架。
                </p></li><li class="listitem"><p>
                    静态语言与动态语言从语言特征到运行环境都在逐渐融合。
                </p></li><li class="listitem"><p>
                    程序员应该与程序语言一样，既要有自己的专长，又要向通用化和全能化发展。
                </p></li><li class="listitem"><p>
                    编程语言惯例用法、哲学理念和编程范式形成了语言的编程风格。
                </p></li></ul></div></div><div class="section" title="“”参考"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="reference"></a>“”参考</h2></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
                    Larry Wall, Tom Christiansen, Jon Orwant．Programming Perl, 3<sup>rd</sup> ed.．Sebastopol, CA：O&#8217;Reilly，2000
                </p></li><li class="listitem"><p>
                    Mark Lutz, David Ascher．Learning Python, 2<sup>nd</sup> ed.．Sebastopol, CA：O&#8217;Reilly，2003
                </p></li><li class="listitem"><p>
                    Michael Fitzgerald．Learning Ruby．Sebastopol, CA：O&#8217;Reilly，2007
                </p></li><li class="listitem"><p>
                    Michele E. Davis, Jon A. Phillips．Learning PHP &amp; MySQL, 2<sup>nd</sup> ed.．Sebastopol, CA：O&#8217;Reilly，2007
                </p></li></ol></div></div></div>

<!-- below is edited manually -->
<strong><span style="font-family: 宋体">课后思考</span></strong>
<ul style="margin-top: 0cm; list-style-type: none">
    <li>06-01 有人认为掌握的语言过多，容易互相混淆，不如精学一门。你认为呢?</li>
    <li>06-02 在实际编程中，你有选择编程语言的权力吗？如果有，选择的原则是什么？</li>
    <li>06-03 在前台编程、后台编程和系统编程中，你主要专注于哪方面？你认为它们之间的主要差别在哪里？</li>
    <li>06-04 你所熟悉的编程语言有哪些惯例用法和哲学理念？</li>
    <li>06-05 试着学习一门新的语言，最好与目前掌握的知识集合互补。</li>
</ul><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.zhenghui.org%2F2009%2F10%2F10%2Fcolon-class-6_4%2F&amp;title=%E5%86%92%E5%8F%B7%E8%AF%BE%E5%A0%82%C2%A76.4%EF%BC%9A%E5%90%8E%E5%8F%B0%E8%84%9A%E6%9C%AC" id="wpa2a_2">分享/保存</a></p><h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>无相关文章</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.zhenghui.org/2009/10/10/colon-class-6_4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

