<?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>imLiony!小狮的世界 &#187; PHP</title>
	<atom:link href="http://www.imliony.cn/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.imliony.cn</link>
	<description>关注用户体验，记录对互联网的观察和思考</description>
	<lastBuildDate>Fri, 03 Sep 2010 07:11:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>九大PHP开源Wiki程序评测</title>
		<link>http://www.imliony.cn/blog/1399.hyh/</link>
		<comments>http://www.imliony.cn/blog/1399.hyh/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 09:44:52 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[有用收藏]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[维基百科]]></category>
		<category><![CDATA[评测]]></category>
		<category><![CDATA[评论]]></category>
		<category><![CDATA[资料]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/1399.hyh/</guid>
		<description><![CDATA[
转自三一日志
维基百科（Wiki）是Web2.0的代表产物，跟博客、digg、视频分享等一样同样强调用户参与，分享互联网的精神。如果想自己编写一本百科全书，跟建一个博客一样，有已经开发好的程序可以使用，而且是开源的。有了这些工具，我们要实现编写百科全书的梦想就不难实现了。以下是九大基于PHP和Mysql架构的wiki程序的介绍，有兴趣的朋友可以选择一款适合自己的wiki程序。......]]></description>
			<content:encoded><![CDATA[<p>转自<a href="http://www.sanywork.cn/php_mysql/20090508364.html" target="_blank">三一日志</a></p>
<p>维基百科（Wiki）是Web2.0的代表产物，跟博客、digg、视频分享等一样同样强调用户参与，分享互联网的精神。如果想自己编写一本百科全书，跟建一个博客一样，有已经开发好的程序可以使用，而且是开源的。有了这些工具，我们要实现编写百科全书的梦想就不难实现了。以下是九大基于PHP和Mysql架构的wiki程序的介绍，有兴趣的朋友可以选择一款适合自己的wiki程序。</p>
<p>PmWiki</p>
<p>下载地址：<a href="http://www.pmwiki.org/wiki/PmWiki/Download">http://www.pmwiki.org/wiki/PmWiki/Download</a></p>
<p>PmWiki是一个基于PHP的wiki引擎，各项wiki功能比较完善，而且能够很好的支持中文。PmWiki的特点：</p>
<ul>
<li>小巧易用，使用文件存放所有内容，不使用数据库；</li>
<li>超过200个功能扩展插件；</li>
<li>较为完善的权限及密码功能：可以针对页面或组设定密码，以及指定浏览、修改权限；</li>
<li>允许页面分组，并允许页面内容被其他页面调用（include）；</li>
<li>支持页面编辑、版本记录；</li>
<li>支持WikiWords功能自动产生相关链接支持分类属性；</li>
<li>支持InterMap的跨站点链接缩写；</li>
<li>支持RSS、邮件提醒等功能。</li>
</ul>
<p>SpeedyWiki</p>
<p>下载地址：<a href="http://speedywiki.sourceforge.net/">http://speedywiki.sourceforge.net/</a></p>
<p>SpeedyWiki的特点包括：</p>
<ul>
<li>内置WYSIWYG页面编辑器；</li>
<li>开/关账号注册；快速搜索；</li>
<li>定制RSSFeed；</li>
<li>完整的修订系统；</li>
<li>支持多种UI主题；</li>
<li>安装简单。</li>
</ul>
<p>Tikiwiki</p>
<p>下载地址：<a href="http://info.tikiwiki.org/Get+Tiki">http://info.tikiwiki.org/Get+Tiki</a></p>
<p>TikiWiki是基于PHP、ADODB（持久层）以及Smarty（模板引擎）开发的CMS（内容管理系统）/门户系统/群件（Groupware）系统。它由来自全世界范围的开源爱好者、捐赠者参与开发和维护。</p>
<p>通过TikiWiki，您可以很轻松的搭建各种类型的站点、门户、内部网等。TikiWiki同样也是一个强大的基于Web的协作系统。TikiWiki内置了非常多的功能选项，当您需要某个功能时可以很方便的将其激活。TikiWiki除了拥有当前几个优秀的Wiki的所有功能外，并且还提供很多其他实用的功能。您可以通过TkiWiki搭建论坛系统、聊天室、投票系统、客户支持网站以及其他。TikiWiki的开发与维护团队一直处于活跃状态，并将无限期的持续下去。您可以看到有越来越多的网站正基于TikiWiki建设当中。</p>
<p>TikiWiki的主要功能包括：文章库、论坛、电子报、博客日志、文件/图库系统、投票/调查问卷/测验系统、FAQ、聊天室、横幅广告管理系统、Webmail、行事历、工作流、在线支持系统等等。</p>
<p>Wikiwig</p>
<p>下载地址：<a href="http://wikiwig.sourceforge.net/">http://wikiwig.sourceforge.net/</a></p>
<p>Wikiwig是一个采用PHP+MySQL搭建的Wiki引擎。</p>
<p>它的特性：提供一个WYSIWYG在线编辑器（htmlarea），用户管理，系统锁定（避免两个用户同时编辑），文件管理，图片管理（上传+在线修改），跟踪文章版本修订等等。</p>
<p>DocBookWiki</p>
<p>下载地址：<a href="http://doc-book.sourceforge.net/homepage/">http://doc-book.sourceforge.net/homepage/</a></p>
<p>DocBookWiki能够在线展示与编辑DocBook文档。它能够一次性展示多个文档，每一个文档可具有多种语言。可以以多种模式进行编辑（如文本，HTML，XML等），但最基本的格式还是DocBook（XML）。每一个文档能够自动转换成其它格式以用于下载。所有这些历史修改记录将被保存在CVS中，并且还能够把文档恢复到之前的任何版本。</p>
<p>WikkaWiki</p>
<p>下载地址：<a href="http://wikkawiki.org/HomePage">http://wikkawiki.org/HomePage</a></p>
<p>WikkaWiki是一个快速、可扩展、安全、遵循标准，采用PHP+MySQL开发的轻量级wiki引擎。它提供了一个直观的操作界面用于编辑页面内容，跟踪和比较由单个用户所完成的修订，设置用户访问权限等。</p>
<p>DokuWiki</p>
<p>下载地址：<a href="http://www.splitbrain.org/projects/dokuwiki">http://www.splitbrain.org/projects/dokuwiki</a></p>
<p>DokuWiki是一个基于PHP开发的开源wiki引擎。它具有小巧、功能强大、灵活的特点，适合于中小团队和个人网站搭建知识库系统。DokuWiki可以集成到WordPress、XOOPS、PostNuke等系统中使用。它具有以下特性：</p>
<ul>
<li>无需要数据库支持，直接采用文件系统来存储数据。</li>
<li>使用类似MediaWiki的文本编辑器，支持快捷键。支持段落编辑，能自动生成文章目录。</li>
<li>wiki语法完善，自动产生条目链接，支持图片上传、外部链接等。</li>
<li>支持无限版本记录，支持彩色版本差异功能。</li>
<li>支持页面锁定（只读）。通过ACL插件，还可以控制用户对页面及名字空间的访问权限。</li>
<li>支持RSS及ATOM新闻聚合。</li>
<li>具有页面缓存机制。</li>
<li>具有垃圾信息过滤功能。</li>
<li>支持快速全文检索。</li>
<li>可定制页面样式模板及插件</li>
</ul>
<p>MediaWiki</p>
<p>下载地址：<a href="http://www.MediaWiki.org/wiki/MediaWiki">http://www.MediaWiki.org/wiki/MediaWiki</a></p>
<p>MediaWiki是全球最著名的wiki知识库引擎，运行于PHP+MySQL环境。MediaWiki从2002年2月25日被作为维基百科全书的系统软件，并有大量其他应用实例。目前MediaWiki的开发得到维基媒体基金会的支持。MediaWiki是建立wiki网站的首选后台程序，目前国内的天下维客等站点都采用这套系统。MediaWiki一直持续更新。其原作者为德国的MagnusManske。</p>
<p>选择MediaWiki来搭建wiki知识库的理由：</p>
<ul>
<li>经受过重量级应用的考验，功能丰富而且易于安装；</li>
<li>全世界最大的wiki项目维基百科是使用MediaWiki的成功范例，数据量、访问量都超级庞大；</li>
<li>MediaWiki的功能非常丰富，支持多语言版本，充分满足知识站点的需要；</li>
<li>运行环境要求很低，架设过程简洁，即使新手也可以迅速建立自己的站点；</li>
<li>MediaWiki是目前应用最广的wiki程序，数以万计的网站在使用它，很容易找到范例站点；</li>
<li>持续开发，程序特性功能不断完善，保证未来的支持；</li>
<li>MediaWiki是受到维基媒体基金会支持的开源项目，在功能、性能、安全方面将不断优化；</li>
</ul>
<p>MediaWiki的缺点</p>
<ul>
<li>后台管理功能不是很完善，仅通过简单的特殊页面完成这些功能；</li>
<li>一般环境下，MediaWiki的运行速度相对其他wiki程序要差很多。MediaWiki的目标是为维基媒体项目服务，很多华丽的性能特征要在高端设备环境（多服务器，多数据库，反向缓冲squid服务器阵列，大量额外的PHP缓冲引擎）中才能体现。</li>
<li>在界面方面关注不够，导致外观美化的修改繁琐，甚至需要一定的技术背景。</li>
</ul>
<p>MediaWiki系统特色</p>
<ul>
<li>1wiki的重要特征；</li>
<li>记录所有的改动版本，能方便的查阅历史更新记录，这使得开放性编辑成为可能；</li>
<li>自动产生链接，编辑文本中中括号中的内容（如“[[X条目]]”）将自动产生链接；</li>
<li>允许使用模板，方便对相同内容的重复使用、更新；</li>
<li>支持分类，并根据分类在不同的文章之间自动产生关联；</li>
<li>允许每个用户自行选择系统外观；</li>
<li>中文支持较好；</li>
</ul>
<p>PhpWiki</p>
<p>下载地址：<a href="http://sourceforge.net/projects/phpwiki/">http://sourceforge.net/projects/phpwiki/</a></p>
<p>PhpWiki是WikiWikiWeb的一个PHP”克隆”。WikiWikiWeb是一个任何人都可以通过一个HTMLForm来编辑其页面的网站。支持多种存储方式，动态超链接，可更换主题，访问控制列表（ACL）等。</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2009 |
<a href="http://www.imliony.cn/blog/1399.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/1399.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/html/" rel="tag">HTML</a>, <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/wiki/" rel="tag">wiki</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e5%8f%91/" rel="tag">开发</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e6%ba%90/" rel="tag">开源</a>, <a href="http://www.imliony.cn/blog/tag/%e6%8a%80%e6%9c%af/" rel="tag">技术</a>, <a href="http://www.imliony.cn/blog/tag/%e7%bb%b4%e5%9f%ba%e7%99%be%e7%a7%91/" rel="tag">维基百科</a>, <a href="http://www.imliony.cn/blog/tag/%e8%af%84%e6%b5%8b/" rel="tag">评测</a>, <a href="http://www.imliony.cn/blog/tag/%e8%af%84%e8%ae%ba/" rel="tag">评论</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%96%99/" rel="tag">资料</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/1399.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>下午应聘新浪PHP开发笔试答题总结</title>
		<link>http://www.imliony.cn/blog/1284.hyh/</link>
		<comments>http://www.imliony.cn/blog/1284.hyh/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 16:53:22 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[工作之外]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[新浪]]></category>
		<category><![CDATA[考试]]></category>
		<category><![CDATA[面试]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/?p=1284</guid>
		<description><![CDATA[
下午去了新浪面试PHP应用开发工程师，一面是笔试，题目超多，而且有些很考验真实水平。前一段时间去用友，面的也是PHP开发，考题的广度和深度远不如新浪的这次，即使这样我也没有面试通过……可见我的水平了，还需努力啊！这里根据记忆记录几道题目：
第一题：遍历目录及子目录（要求给出同解的unix shell代码）......]]></description>
			<content:encoded><![CDATA[<p>下午去了新浪面试PHP应用开发工程师，一面是笔试，题目超多，而且有些很考验真实水平。前一段时间去用友，面的也是PHP开发，考题的广度和深度远不如新浪的这次，即使这样我也没有面试通过……可见我的水平了，还需努力啊！这里根据记忆记录几道题目：</p>
<p><strong>第一题：遍历目录及子目录（要求给出同解的unix shell代码）</strong></p>
<p>我是用递归解的题，比较简单，就不写了。</p>
<p><strong>第二题：设计一个留言板，要求给出整个设计方案。要求画出用例，描述数据对象，阐述出发点和难点及要点。要求满足十万级访问量（读写比为10：1），要求数据持久保存并给出存储方案，要求兼顾不同地域和网络线路的访问者。</strong></p>
<p>这个比较难耶……题目上直接就说：“本题目花费时间较长，可以先做后面的题目最后再做这道。”果然，等我最后答这道题的时候时间已经不多了，我就草草的写了几个开发要点（跟踪查询情况，对热点数据进行单独处理；优化表现层，降低刷新产生的查询量。还写了几条，但是后来忘记写的什么了），之后又画出了数据对象和简单的数据结构（我画了三个，一是用户，二是管理员，三是留言本身），还画了数据流（从用户注册开始，到用户发留言，然后管理员审核，然后用户查看留言），画完数据流就交卷了！没有列功能点，也没有画用例图……基本可以判定为0分……</p>
<p><strong>第三题：有一个1G的文本文件，名字是maillog.txt，存储的格式如下：</strong></p>
<blockquote><p>heyahu@sina.com.cn<br />
oeifj@yahoo.com<br />
mhlgi@sina.com<br />
qqdiwe@gmail.com<br />
eriugh@qq.com</p></blockquote>
<p><strong>要求：内存占用不得大于512M，速度尽可能快，开销尽可能少（这两个是废话），最重要的是只输出邮箱为@sina.com的邮箱地址。（要求给出同解的unix shell代码）</strong></p>
<p>我的解法是：</p>
<ol>
<li>取第一行文本，即第一个邮箱地址；</li>
<li>从右取字符，到“@”为止；</li>
<li>判断字符数是否等于8（数数“sina.com”一共是8个字符），如果等于，则进入4)，如果不等于返回1)读取下一行；</li>
<li>进一步判断该段字符是否等于“sina.com”，如果等于则输出该邮箱地址并进入下一步，如果不等于则返回1)读取下一行；</li>
<li>返回执行1)。</li>
</ol>
<p>不知道这个方法好不好啊，我觉得是最普通的思路了。先判断字符个数是否等于8，是因为我觉得整数值的判断比字符的判断效率要高，开销也小一些。</p>
<p><strong>第四题：给定一个路径$patht，要求设计一个函数，使得传递任意一个路径$path，返回path相对于patht的路径（即取相对路径）。比如对于下面这两个路径：“a\b\c\d\e.php”和“a\b\12\34\c.php”，后者相对于前者的相对路径就是“..\..\c\d”。要求用尽可能高效率的代码实现该功能（这种废话会给人很大压力的……）</strong></p>
<p>我的解法是：</p>
<ol>
<li>先将两个路径按照“\”分隔，分别存进arrpath[]和arrpatht[]这两个数组；</li>
<li>将数组放进一个while循环，循环条件是arrpath[$n]==arrpatht[$n]，循环体是$res+=&#8217;..\&#8217;，其中$n为计数器（跳出循环后还要用到），$res是最终返回结果，即相对路径值；</li>
<li>跳出循环后，$n即代表两个数组第一个不相等元素的位置，然后$n2=count(arrpatht)-$n-1（这是计算还剩下多少个不一样的元素）；</li>
<li>然后设置一个for循环，计数器$i，初始值$i=$n，结束条件为$i<=$n2，循环体是$res+=arrpatht[$i]."\"，这个for的作用是将参照路径的剩余部分累加到相对路径值中；</li>
<li>最后返回$res即可</li>
</ol>
<p><strong>第五题：设一数据量为千万级的数据库，通过监控发现，有90%的查询请求都是指向同一部分数据的，而这部分数据只占整个数据库容量的1%。问：如何设计数据库结构，以避免造成瓶颈。</strong></p>
<p>这道题目也很有难度耶……我对DBA这个行当一点了解都木有，只能胡诌了……忘记写的是什么了……</p>
<p><strong>第六题：给任意一段URL，取出该URL中包含的扩展名。如“http://www.sina.com/test.php?somevar”，返回.php或php。</strong></p>
<p>我是这么解的：</p>
<ol>
<li>从右端取字符，到第一个“.”为止，如果没有则返回空值，表示没有找到扩展名，取出的字符串放入$url；</li>
<li>将$url放入for循环，初始值$i=0，结束条件为$i<=strlen($url)，然后判断substr($url,$i,1)是否是“\/:*?"<>|”中的任意一个，如果不是则$res+=substr($url,$i,1)，如果是则退出for循环；</li>
<li>最户返回$res即可。</li>
</ol>
<p><strong>第七题：有两段代码：</strong></p>
<pre class="brush: php">//代码1
for ($i = 0; $i &lt; 3; $i++){
    if (ture){
        dosth();
    } else{
        dosth1();
    }
}
//代码2
if (ture){
    for ($i = 0; $i &lt; 3; $i++){
        dosth();
    }
} else{
    for ($i = 0; $i &lt; 3; $i++){
        dosth2();
    }
}</pre>
<p><strong>问：这两段代码有什么区别，以及各自的优缺点。</strong></p>
<p>我是这么答的：两者的区别是，代码1即做for()运算，又做if运算；代码2只做一次if()运算。如果判断条件不变的话，代码2要比代码1更高效。</p>
<p>有印象的就这些了，剩下的都比较简单，都是入门级的题目。整整做了两个多小时……HR把笔试题拿过来的时候把我吓了一跳，那么厚的一叠……</p>
<p>最让我纳闷的是，我投递的明明是实习生的职位（我现在的年龄还能装一把应届毕业生，虽然我已经工作快两年了），结果面试的时候告诉我，给我的职位是PHP应用开发工程师，当时我就震惊了……然后看到一厚叠笔试卷子，我又震惊一回。</p>
<p>不过我估计没戏，一是水平不行（我也就实习生的水平），二是貌似HR对我的印象很差。面试结束后，我感觉有几道题我答的很不好，就很傻帽的给HR打电话问能不能给一份空白卷子（当时我心里想的是拿回去研究研究，后来我再想想这种举动实在是太傻缺了……），结果HR非常干脆的回答“不行”，然后就把电话挂了……</p>
<p>奉劝诸位，下次去新浪面试的时候先上厕所，而且千万不要管HR要笔试题（不过这种事情大概也就我办的出来吧）。</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2009 |
<a href="http://www.imliony.cn/blog/1284.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/1284.hyh/#comments">已有2条评论</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e5%8f%91/" rel="tag">开发</a>, <a href="http://www.imliony.cn/blog/tag/%e6%96%b0%e6%b5%aa/" rel="tag">新浪</a>, <a href="http://www.imliony.cn/blog/tag/%e8%80%83%e8%af%95/" rel="tag">考试</a>, <a href="http://www.imliony.cn/blog/tag/%e9%9d%a2%e8%af%95/" rel="tag">面试</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/1284.hyh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>唠叨唠叨，首图看书</title>
		<link>http://www.imliony.cn/blog/1296.hyh/</link>
		<comments>http://www.imliony.cn/blog/1296.hyh/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 07:58:00 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[工作之外]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[闲聊]]></category>
		<category><![CDATA[首都图书馆]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/1296.hyh/</guid>
		<description><![CDATA[
昨天在首图顶层的读者自习室看了一下午书，一个大屋子几百号人都在安安静静的学习，氛围很好，所以读书效率也很高。 
主要看的是电力出版社的《PHP程序设计》，这是《PHP Programming》的第一版中文版，翻译质量很一般，错误很多，但是勉强能看，难怪第二版O&#8217;Reilly就给电子工业了。目前看到语言基础的部分。 ......]]></description>
			<content:encoded><![CDATA[<p>昨天在首图顶层的读者自习室看了一下午书，一个大屋子几百号人都在安安静静的学习，氛围很好，所以读书效率也很高。 </p>
<p>主要看的是电力出版社的《PHP程序设计》，这是《PHP Programming》的第一版中文版，翻译质量很一般，错误很多，但是勉强能看，难怪第二版O&#8217;Reilly就给电子工业了。目前看到语言基础的部分。 </p>
<p>可以看出来PHP整体语法还是很简单的，如果有语言基础，那么大约两周即可入门，1个半月即可成为熟练开发者。书中提到了PHP的发展历史，以及一些底层技术原理，尤其提到了PHP的内存管理机制，让我涨了一些见识。以前只在学VB.net的时候了解过一点符号表的机制，但是了解的也不透彻，这次除了把符号表的原理搞清楚之外，还了解到了另一个内存管理机制“引用计数”的原理。 </p>
<p>一下午的阅读比较无聊，除了内存管理的知识点以外就没有什么可以思考的地方了，刚巧没有带笔记，于是就在两张纸上把需要背的知识点记了一下，晚上回去给PHP找个专门的笔记本记下来。 </p>
<p>周六去首图的时候，一口气把8层全部转了一遍，发现来看书的人还是挺多的，但是整个首图除了4层、6层和7层以外基本上不太常用。 </p>
<p>4层是哲学和社科，但是貌似法学和语言学书籍加起来就占了这一层藏书量的一半还多，先秦诸子只有一个小柜子。 </p>
<p>6层是科技图书，我比较关注里面的开发类书籍，所以着重的看了一下，发现大多数都已经落后，没有阅读价值了，PHP的书只找到一本（就是《PHP Programming》，还是第一版的），Ajax框架的一本都没有，Python的倒是有好几本，不知道是为什么。可能是我看得还不够全面的缘故，也可能是都被人借走了。 </p>
<p>7层是综合阅览室，藏书量极丰，涵盖物理、社科、哲、史、政、博物学、医学、语言学、通俗小说、原版英文书籍等等，非常全面，以后应该会经常光顾这一层吧，开放时间是周二至周六。 </p>
<p>来自习之前，在家里搜了搜目前要看的书，觉得还是好好计划一下的好。 </p>
<p>英语方面。IELTS决定还是看剑六，周五和周六各做一课，第二天可以批改复习，刘畅词汇是每晚要听的，另外订阅了BBC learning English的RSS，也是每晚一课。听力方面有《listen to this》第一本，但是要等词汇过半才可以听，现在还不到时候。writing和reading方面倒是有不少辅助资料，但是都不大管用，不能作为密集练习的教材，只能回头再找。好在现在都不急，先把4000背完，按部就班的做练习题就好。 </p>
<p>计算机方面。有一份书单，是亲自选的，包括入门、中级和进阶三个部分的，上次回家的时候专门去购书中心挑选了半天，之前也在网上看过了一些。《PHP Programming》本来不在书单内，我在《PHP和MySQL Web核心开发技术》跟它之间挑选了一下，还是选了前者，无奈首图没有《PHP和MySQL》这本书，只能看它了。不过对于入门来说看哪本书都无所谓的，就是错误的地方让人很无奈，但是也不影响阅读。 </p>
<p>计算机这方面的书籍，只有电子工业、机械工业、人民邮电这三家比较好，清华出版社也有少量还不错，但是无法与这三者相提并论。剩下的都是稍有闪光，从整体质量上讲，完全不如这四家。这四家之中尤其是电子工业和机械工业这两家最为出色。</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2009 |
<a href="http://www.imliony.cn/blog/1296.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/1296.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/%e4%b9%a6/" rel="tag">书</a>, <a href="http://www.imliony.cn/blog/tag/%e9%97%b2%e8%81%8a/" rel="tag">闲聊</a>, <a href="http://www.imliony.cn/blog/tag/%e9%a6%96%e9%83%bd%e5%9b%be%e4%b9%a6%e9%a6%86/" rel="tag">首都图书馆</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/1296.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chyrp，简洁的Blog程序</title>
		<link>http://www.imliony.cn/blog/733.hyh/</link>
		<comments>http://www.imliony.cn/blog/733.hyh/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 02:28:32 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[chyrp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[资料]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/?p=733</guid>
		<description><![CDATA[
Chyrp，是一帮对日益臃肿的WordPress感到非常不满的人搞得一个东西，秉承WP最初的“微内核”思想的一款开源Blog程序，PHP的，目前版本刚到2.0rc3。
功能巨简洁，如果不装插件的话就只有title和text两个输入项，而且title还是可选的……整个一Twitter。目前可用的插件和模板还不多，想研究PHP Blog程序的同学不要错过，别等以后越来越复杂再看代码就不方便了。......]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.imliony.cn/wp-content/uploads/2009/03/image.png" target="_blank"><img style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 0px 0px 10px; border-left: 0px; border-bottom: 0px" title="image" src="http://www.imliony.cn/wp-content/uploads/2009/03/image-thumb.png" border="0" alt="image" width="206" height="80" align="right" /></a></p>
<p><a href="http://chyrp.net/">Chyrp</a>，是一帮对日益臃肿的WordPress感到非常不满的人搞得一个东西，秉承WP最初的“微内核”思想的一款开源Blog程序，PHP的，目前版本刚到2.0rc3。</p>
<p>功能巨简洁，如果不装插件的话就只有title和text两个输入项，而且title还是可选的……整个一Twitter。目前可用的插件和模板还不多，想研究PHP Blog程序的同学不要错过，别等以后越来越复杂再看代码就不方便了。</p>
<ul>
<li>演示Demo：点击这里<br />
你可以在这里创建一个临时的Blog，前后台功能一应俱全。</li>
<li>下载地址：<a href="http://chyrp.net/download" target="_blank">点击这里</a><br />
源代码的下载地址也在这个页面里。</li>
<li>文档：<a href="http://chyrp.net/code" target="_blank">点击这里</a></li>
<li>插件：<a href="http://chyrp.net/extend" target="_blank">点击这里</a><br />
跟WordPress肯定没法比，但是也已经有不少了。 </li>
</ul>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2009 |
<a href="http://www.imliony.cn/blog/733.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/733.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/chyrp/" rel="tag">chyrp</a>, <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e5%8f%91/" rel="tag">开发</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e6%ba%90/" rel="tag">开源</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%96%99/" rel="tag">资料</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/733.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP的Web Client类：Snoopy介绍</title>
		<link>http://www.imliony.cn/blog/600.hyh/</link>
		<comments>http://www.imliony.cn/blog/600.hyh/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 15:24:20 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[snoopy]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[资料]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/600.hyh/</guid>
		<description><![CDATA[
简单的说，Snoopy是一个用以模拟浏览器功能的PHP类，它可以模拟访问，提交表单到你需要登录的Web服务器端，同时提供了筛选信息的功能，让你可以根据需要取得自己想要的信息。
Snoopy的一些特点: ......]]></description>
			<content:encoded><![CDATA[<p>简单的说，Snoopy是一个用以模拟浏览器功能的PHP类，它可以模拟访问，提交表单到你需要登录的Web服务器端，同时提供了筛选信息的功能，让你可以根据需要取得自己想要的信息。</p>
<p>Snoopy的一些特点: </p>
<ul>
<li>方便抓取网页的内容 </li>
<li>方便抓取网页的文本内容 (去除HTML标签) </li>
<li>方便抓取网页的链接 </li>
<li>支持代理主机 </li>
<li>支持基本的用户名/密码验证 </li>
<li>支持设置 user_agent，referer，cookies 和 header content </li>
<li>支持浏览器转向，并能控制转向深度 </li>
<li>方便提交数据并且获取返回值</li>
</ul>
<p>其实跟之前介绍过的<a href="http://www.imliony.cn/blog/404.hyh/" target="_blank">cURL</a>差不多，只不过Snoopy是PHP语言的。</p>
<p>调查Snoopy的原因是，公司前段时间上线了一个内部OA系统，现在上下班都要使用这个OA系统进行考勤登记，而小狮总是忘记登记……如果每次都被算作迟到，我就可以去喝西北风了，所以，小狮决定做一个自动考勤系统，偷偷的做一个，只要设置好自动运行，没人会发现的，嘿嘿嘿嘿……</p>
<p>以前想过用cURL来做的，但是没有装VS，而且最近对PHP比较感兴趣（主要原因是可以直接用记事本敲代码，比较方便，环境搭建也超级简单），所以决定用Snoopy（不过貌似cURL也有PHP版本的）。</p>
<p>当然，Snoopy是完全可以胜任这项工作的。Snoopy可以获取指定URL的HTML内容，可以提交表单并获取返回值，可以发送指定的HTTP请求等等等等，总之你能用浏览器做的事情都可以用Snoopy来制作一个程序自动完成。</p>
<p>小狮最喜欢的特性是可以将HTTP请求进行彻底伪装——可以伪装session、 伪装浏览器（包括浏览器版本）、伪装IP、伪装操作系统，目前暂时只发现这些。而且而且，还可以使用代理发送HTTP请求（啊~这个世界真美好~）。</p>
<p>小狮终于知道那些论坛暴力下载器、整站Copy工具、在线Screenshot工具什么的都是怎么做的了……</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2009 |
<a href="http://www.imliony.cn/blog/600.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/600.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/snoopy/" rel="tag">snoopy</a>, <a href="http://www.imliony.cn/blog/tag/%e4%ba%92%e8%81%94%e7%bd%91/" rel="tag">互联网</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e5%8f%91/" rel="tag">开发</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%96%99/" rel="tag">资料</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/600.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress中一些有用的函数</title>
		<link>http://www.imliony.cn/blog/406.hyh/</link>
		<comments>http://www.imliony.cn/blog/406.hyh/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 10:03:59 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[资料]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/406.hyh/</guid>
		<description><![CDATA[
转自志凡’S BLOG
......]]></description>
			<content:encoded><![CDATA[<p>转自<a href="http://www.coderhome.net/zifa/?p=361" target="_blank">志凡’S BLOG</a></p>
<ol>
<li>is_serialized：检查是否是一个序列化数据 </li>
<li>is_serialized_string：检查是否是一个字符串序列化数据 </li>
<li>get_status_header_desc：将http状态转换成说明 </li>
<li>nocache_headers：发送一个让页面不缓存的http头信息 </li>
<li>cache_javascript_headers：让javascript缓存10天的http头信息 </li>
<li>wp_mkdir_p：递归创建一个完整的目录(整个目录中的子目录不存在都创建) </li>
<li>path_is_absolute：检查是否是个绝对路径 (’/foo/bar’, ‘c:\windows’). </li>
<li>wp_ext2type：根据扩展名获得文件类型 </li>
<li>absint：转换成正整数 </li>
</ol>
<p>函数文件在wp程序目录的wp-includes/functions.php。</p>
<p><a href="http://www.coderhome.net/code/index.php?id=153">查看整理的代码</a></p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2009 |
<a href="http://www.imliony.cn/blog/406.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/406.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://www.imliony.cn/blog/tag/%e4%bb%a3%e7%a0%81/" rel="tag">代码</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e5%8f%91/" rel="tag">开发</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%96%99/" rel="tag">资料</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/406.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.7评论相关函数详解</title>
		<link>http://www.imliony.cn/blog/332.hyh/</link>
		<comments>http://www.imliony.cn/blog/332.hyh/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 07:43:26 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[学习]]></category>
		<category><![CDATA[资料]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/?p=332</guid>
		<description><![CDATA[
原创文章，转载请联系Liony_小狮
 WordPress 2.7自带了Thread Comment功能，无需插件即可完美实现评论分页和回复评论的功能，小狮刚刚把imliony这个模板修改完，现在imliony也支持评论分页功能啦！  ......]]></description>
			<content:encoded><![CDATA[<p><font color="#ff8040">原创文章，转载请</font><a href="http://www.imliony.cn/contact">联系Liony_小狮</a></p>
<p><a href="http://www.imliony.cn/wp-content/uploads/2008/12/fenye1.png"><img style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" title="fenye" src="http://www.imliony.cn/wp-content/uploads/2008/12/fenye-thumb.png" border="0" alt="fenye" width="207" height="76" align="left" /></a> WordPress 2.7自带了Thread Comment功能，无需插件即可完美实现评论分页和回复评论的功能，小狮刚刚把imliony这个模板修改完，现在imliony也支持评论分页功能啦！ <img src='http://www.imliony.cn/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>上面是本博客的分页样式（感谢小新同志的指导）。</p>
<p>下面小狮就把修改过程记录一下。</p>
<h3>WordPress 2.7中Comment的特点</h3>
<p>2.7版本中自带的Thread Comment有几个特点需要注意。第一是自动分页，在后台可以设置每页显示几条评论、先显示旧评论还是先显示新评论等等，然后调用<code>wp_comment_list()</code>函数，系统就会自动进行分页；第二是支持嵌套功能，效果跟现在的Thread Comment类的插件一样。</p>
<p>要想实现WordPress 2.7自带的Thread Comment，就需要重写comment.php文件。</p>
<h3>重写comment.php文件</h3>
<p>在2.7中，统一使用<code>wp_comment_list()</code>函数来显示评论，代替了之前的<code>for...each</code>方式，所以<code>comment.php</code>文件几乎要全部重写。</p>
<p>重写主要涉及三个地方，一是评论内容部分，要用<code>wp_comment_list()</code>函数代替之前的<code>for...each</code>语句；二是加上分页导航的相关函数，用来显示分页导航；三是修改<code>form</code>区域的代码，用来支持嵌套回复。</p>
<p>下面一个一个的说。</p>
<h3>使用wp_comment_list()函数</h3>
<p><code>wp_comment_list()</code>函数将根据用户的设置自动对评论进行切割和分页，然后返回包含评论内容的HTML代码。</p>
<p>由于评论都封装在了<code>wp_comment_list()</code>中，所以如果需要修改评论的样式就需要另外写一个函数，用于<code>wp_comment_list()</code>的回调，我们需要在funtion.php文件中定义该函数，然后用<code>wp_comment_list("callback=函数名")</code>的方式进行调用。</p>
<p>wp_comment_list()函数的用法：</p>
<pre class="brush: php">
	&lt;?php wp_list_comments(&#039;style=ul&amp;callback=callback_func&#039;); ?&gt;
</pre>
<p><code>wp_comment_list()</code>有3个主要参数：<br />
（int）avatar_size：指定评论者的头像尺寸，默认是32，单位是px<br />
（string）style：评论代码用哪种标签包裹，可以在ul和div中进行选择，默认是<code>ul</code><br />
（string）callback：指定一个定义在<code>function.php</code>文件中的函数，<code>wp_comment_list()</code>将根据该函数对评论内容进行HTML编码，所以该函数通常用于指定评论内容的样式
</ul>
<p>使用<code>wp_comment_list()</code>之后，我们得到的HTML代码是这样的：</p>
<pre class="brush: html">&lt;div id=&quot;comments&quot;&gt;
	&lt;h3&gt;3 Comments&lt;/h3&gt;
	&lt;li id=&quot;comment-18&quot; class=&quot;comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1 parent&quot;&gt;
		&lt;div id=&quot;div-comment-18&quot;&gt;&lt;/div&gt;
		&lt;ul class=&quot;children&quot;&gt;&lt;/ul&gt;
	&lt;/li&gt;
&lt;/div&gt;</pre>
<p>除了comments这个<code>div</code>和那个<code>h3</code>以外的内容，都是<code>wp_comment_list()</code>函数生成的。</p>
<p>首先我们可以看到每条评论都是用li标签包裹的，而且有非常详细的class，基本上把所有类型的comment都表示出来了，比如文章作者的评论、admin管理员的评论以及某条评论的回复等等，这样我们在做CSS的时候就很方便了。</p>
<p>然后在comment-18这个li的内部，有一个div和一个ul，前者是评论内容，后者是该条评论的回复。前者的代码展开之后如下：</p>
<pre class="brush: html">&lt;div id=&quot;div-comment-18&quot;&gt;
	&lt;div class=&quot;comment-author vcard&quot;&gt;
		&lt;img class=&quot;avatar avatar-32 photo&quot; width=&quot;32&quot; height=&quot;32&quot; src=&quot;http://www.gravatar.com/avatar/444e20d6b616a9b7bc57ffa4fe5f71f5?s=32&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&amp;r=G&quot; alt=&quot;&quot;/&gt;
		&lt;cite class=&quot;fn&quot;&gt;admin&lt;/cite&gt;
		&lt;span class=&quot;says&quot;&gt;says:&lt;/span&gt;
	&lt;/div&gt;
	&lt;div class=&quot;comment-meta commentmetadata&quot;&gt;
		&lt;a href=&quot;http://127.0.1/archives/1/comment-page-4/#comment-18&quot;&gt;2008-12-24 - 14:11&lt;/a&gt;
		&lt;a title=&quot;编辑评论&quot; href=&quot;http://127.0.1/wp-admin/comment.php?action=editcomment&amp;c=18&quot;&gt;(Edit)&lt;/a&gt;
	&lt;/div&gt;
	&lt;p&gt;我是一条评论!!&lt;/p&gt;
	&lt;div class=&quot;reply&quot;&gt;
		&lt;a onclick=&quot;return addComment.moveForm(&quot;div-comment-18&quot;, &quot;18&quot;, &quot;respond&quot;, &quot;1&quot;)&quot; href=&quot;/archives/1/?replytocom=18#respond&quot; rel=&quot;nofollow&quot;&gt;Reply&lt;/a&gt;
	&lt;/div&gt;
&lt;/div&gt;</pre>
<p>这是默认的结构，我们可以用回调函数进行自定义，一般来说都需要自定义的，下面会专门讲到。其中要注意<code>reply</code>这个div，就是那个reply按钮，这里包含一个JS，会id为<code>respond</code>的HTML元素移动到<code>div-comment-18</code>这个div的下面。那个<code>children</code>层里面包含的是一条子评论，结构是一样的。</p>
<h3>使用回调函数自定义wp_comment_list()</h3>
<p>使用回调函数可以自定义<code>wp_comment_list()</code>的返回结果，常用于修改评论的样式。方法是在调用<code>wp_comment_list()</code>的时候指定callback参数：</p>
<pre class="brush: php">
	&lt;?php wp_list_comments(&#039;callback=mytheme_comment&#039;); ?&gt;
</pre>
<p>然后在<code>function.php</code>中定义<code>mytheme_commen()</code>t函数即可：</p>
<pre class="brush: php">&lt;?php
function mytheme_comment($comment, $args, $depth) {

   $GLOBALS[&#039;comment&#039;] = $comment; ?&gt;
  &lt;li &lt;?php comment_class(); ?&gt; id=&quot;comment-&lt;?php comment_ID() ?&gt;&quot;&gt;
	  &lt;div id=&quot;div-comment-&lt;?php comment_ID() ?&gt;&quot;&gt;
		&lt;?php echo get_avatar( $comment, 32 ); ?&gt;
		&lt;?php if ($comment-&gt;comment_parent == &#039;0&#039;) : ?&gt;
		&lt;p class=timestamp&gt;&lt;a href=&quot;#comment-&lt;?php comment_ID() ?&gt;&quot;&gt;
		  &lt;?php comment_date(&#039;Y年n月j日&#039;) ?&gt;&lt;br&gt;
		  &lt;span class=time&gt;
		  &lt;?php comment_time(&#039;H:i a&#039;) ?&gt;
		  &lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
		&lt;?php endif; ?&gt;
		&lt;cite&gt;
		&lt;?php comment_author_link() ?&gt;
		&lt;?php edit_comment_link(&#039;(EDIT)&#039;); ?&gt;
		&lt;/cite&gt;
		&lt;?php comment_text() ?&gt;
		&lt;?php if ($comment-&gt;comment_approved == &#039;0&#039;) : ?&gt;
		&lt;p class=&quot;moderation&quot;&gt; 感谢你的回复! &lt;br/&gt;
		  你的评论将经过一段时间的审核后显示在这里, 请稍等片刻. &lt;/p&gt;
		&lt;?php endif; ?&gt;
		&lt;div class=&quot;reply&quot;&gt;
			&lt;?php comment_reply_link(array_merge( $args, array(&#039;add_below&#039; =&gt; &#039;div-comment&#039;, &#039;depth&#039; =&gt; $depth, &#039;max_depth&#039; =&gt; $args[&#039;max_depth&#039;]))) ?&gt;
		&lt;/div&gt;
		&lt;div class=hr&gt;&lt;/div&gt;
	  &lt;/div&gt;
&lt;?php
        }</pre>
<p>细心的人可以发现，li标签在这里没有封闭，因为<code>wp_comment_list()</code>函数会自动封闭li标签的。这是因为评论会存在回复的可能，因此可能会出现<code>children</code>层，而<code>children</code>层是要包含在li标签内的，但是<code>children</code>层何时会封闭又不知道（因为不知道会有几条回复），所以li标签在这里也不能封闭。</p>
<p>到此，评论的分页和嵌套回复就搞定了。下面说说评论分页的导航，也有几个相关的函数。</p>
<h3>使用previous_comments_link()和next_comments_link()函数实现分页导航</h3>
<p><code>previous_comments_link()</code>是最常见的分页导航样式，就俩链接，一个是“上一页”，一个是“下一页”。<br />
用法：</p>
<pre class="brush: php">&lt;div class=&quot;navigation&quot;&gt;
	&lt;div class=&quot;alignleft&quot;&gt;
		&lt;a href=&quot;http://127.0.1/archives/1/comment-page-2/#comments&quot;&gt;? Older Comments&lt;/a&gt;
	&lt;/div&gt;
	&lt;div class=&quot;alignright&quot;&gt;
		&lt;a href=&quot;http://127.0.1/archives/1/#comments&quot;&gt;Newer Comments ?&lt;/a&gt;
	&lt;/div&gt;
&lt;/div&gt;</pre>
<p><code>next_comments_link()</code>的参数说明：<br />
（string）label：显示的字符，默认是“Newer Comments”<br />
（integer）max_pages：最大页数（没搞懂这个参数是干什么的，哪位知道的告诉一下）</p>
<p><code>previous_comments_link()</code>的参数说明：<br />
（string）label：显示的字符，默认是“Older Comments”</p>
<h3>使用paginate_comments_links()函数实现分页导航</h3>
<p>这种导航的样式就是小狮现在用的那种，可以显示“1，2，3，4”数字的。</p>
<p>用法：</p>
<pre class="brush: php">&lt;div class=&quot;navigation&quot;&gt;
	&lt;?php paginate_comments_links(&quot;echo=1&amp;prev_text=上一页&amp;next_text=下一页&quot;); ?&gt;
&lt;/div&gt;</pre>
<p>参数说明（只拣常用的说）：<br />
echo：是否显示，1是显示，0是不显示，默认为显示。不显示时返回字符串 HTML。<br />
next_text：显示的字符，默认是“Newer Comments”<br />
prev_text：显示字符，默认是“Older Comments”</p>
<h3>支持嵌套回复</h3>
<p>分页和分页导航都搞定了，最后要修改的是评论的form部分，用来支持嵌套回复。这部分比较简单，要注意必须把form放在一个id为respond的层中，具体代码大家可以参考WordPress 2.7中的default模板，看<code>comment.php</code>就可以了，我在这里只说明其中用到的新函数。</p>
<p><code>cancel_comment_reply_link()</code>函数、<code>comment_id_fields()</code>函数和<code>comment_form_title()</code>函数，具体用法如下：</p>
<pre class="brush: php">//显示一个“回复”链接
&lt;?php cancel_comment_reply_link(&#039;回复&#039;); ?&gt;
//显示评论输入框的标题
&lt;?php comment_form_title( &#039;发表评论&#039;, &#039;给 %s 一条回复&#039; ); ?&gt;
//一般放在form代码的末尾
&lt;?php comment_id_fields(); ?&gt;
//上面的这个函数是用来代替下面这条语句的
&lt;input type=&quot;hidden&quot; name=&quot;comment_post_ID&quot; value=&quot;&lt;?php echo $id; ?&gt;&quot; /&gt;</pre>
<p>另外，要在<code>header.php</code>中加入下面这条语句：</p>
<pre class="brush: php">&lt;?php if ( is_singular() ) wp_enqueue_script( &#039;comment-reply&#039; ); ?&gt;</pre>
<p>该语句的作用是在文章的内容页引用<code>comment-reply.js</code>文件，点击“回复”按钮之后输入框移动到评论位置就是靠这个JS实现的。</p>
<h3>总结</h3>
<p>总的来说就是重写<code>comment.php</code>，首先用<code>wp_comment_list()</code>函数代替<code>for...each</code>语句；然后在<code>function.php</code>中定义回调函数；然后加上分页导航的调用函数。最后修改一下CSS就可以使了。</p>
<p>另外要注意的一点是，如果设置了“永久链接”的话，一定记住要在永久链接的后面加上一个斜杠“/”，否则分页导航会出现错误。</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2008 |
<a href="http://www.imliony.cn/blog/332.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/332.hyh/#comments">已有17条评论</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://www.imliony.cn/blog/tag/%e4%bb%a3%e7%a0%81/" rel="tag">代码</a>, <a href="http://www.imliony.cn/blog/tag/learning/" rel="tag">学习</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%96%99/" rel="tag">资料</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/332.hyh/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>用PHPnow在本地搭建PHP环境</title>
		<link>http://www.imliony.cn/blog/260.hyh/</link>
		<comments>http://www.imliony.cn/blog/260.hyh/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 14:46:26 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpnow]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/260.hyh</guid>
		<description><![CDATA[
最近因为工作的缘故，需要在本地机器上搭建一个PHP环境来做调试用，所以要找一个安装包。我很神气的吼了一句：“只有网上没有的，没有我找不到的……”然后就一通搜索，但是找了半天也没找到合适的。最后小新同志很关切的过来问候了一下，然后扭头不到3分钟就给我找到了（汗水   ）。
PHPnow，很方便的一款PHP环境集成安装包，内含Apache、PHP、MySQL、Zend Optimizer、phpMyAdmin和eAccelerator，可谓一应俱全。PHPnow分为两个版本，一个版本包含的Apache是2.0，另一个是2.2，各部分的版本如下：......]]></description>
			<content:encoded><![CDATA[<p>最近因为工作的缘故，需要在本地机器上搭建一个PHP环境来做调试用，所以要找一个安装包。我很神气的吼了一句：“只有网上没有的，没有我找不到的……”然后就一通搜索，但是找了半天也没找到合适的。最后小新同志很关切的过来问候了一下，然后扭头不到3分钟就给我找到了（汗水 <img src='http://www.imliony.cn/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' />  ）。</p>
<p><a href="http://www.phpnow.org/" target="_blank">PHPnow</a>，很方便的一款PHP环境集成安装包，内含Apache、PHP、MySQL、Zend Optimizer、phpMyAdmin和eAccelerator，可谓一应俱全。PHPnow分为两个版本，一个版本包含的Apache是2.0，另一个是2.2，各部分的版本如下：</p>
<ol>
<li>Apache-2.0.63 / 2.2.8 </li>
<li>PHP-5.2.6 </li>
<li>MySQL-5.0.51b </li>
<li>Zend Optimizer-3.3.3 </li>
<li>phpMyAdmin-2.11.6 </li>
<li>eAccelerator 0.9.5.3</li>
</ol>
<p>官方网站<a href="http://www.phpnow.org/" target="_blank">在这里</a>，上面有很详细的介绍和使用说明。安装过程全部自动化，只需要运行一个CMD文件就OK了，安装完成之后还可以很方便通过CMD文件进行配置，做到了彻底傻瓜化。</p>
<p>关于PHPnow的作者，一个高三的学生，但是让人惊讶的是他最近决定退学了。在网上大家议论纷纷，希望他能找到自己真正想做的事情，祝他好运吧。</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2008 |
<a href="http://www.imliony.cn/blog/260.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/260.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/phpnow/" rel="tag">phpnow</a>, <a href="http://www.imliony.cn/blog/tag/%e8%bd%af%e4%bb%b6/" rel="tag">软件</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/260.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用WordPress自带的PHPmailer发送留言邮件</title>
		<link>http://www.imliony.cn/blog/234.hyh/</link>
		<comments>http://www.imliony.cn/blog/234.hyh/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 13:51:54 +0000</pubDate>
		<dc:creator>我是管理员!</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[学习]]></category>
		<category><![CDATA[技巧]]></category>
		<category><![CDATA[资料]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/?p=234</guid>
		<description><![CDATA[
在WordPress中包括了很多开源的PHP类库，实际上WordPress有很多功能都是基于这些类库的，我们也可以在模板或者插件中调用这些类库。比如小狮这个博客的Contact页，用的就是WP自带的一个叫PHPmailer的一个类库，实现了留言回复直接发送到指定的邮箱，非常方便。
下面小狮就把代码公开出来，希望能帮到那些有需要的人，如果有PHP高手可以指教一下，小狮对PHP还是个门外汉呢   。......]]></description>
			<content:encoded><![CDATA[<p>在WordPress中包括了很多开源的PHP类库，实际上WordPress有很多功能都是基于这些类库的，我们也可以在模板或者插件中调用这些类库。比如小狮这个博客的Contact页，用的就是WP自带的一个叫PHPmailer的一个类库，实现了留言回复直接发送到指定的邮箱，非常方便。</p>
<p>下面小狮就把代码公开出来，希望能帮到那些有需要的人，如果有PHP高手可以指教一下，小狮对PHP还是个门外汉呢 <img src='http://www.imliony.cn/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  。</p>
<h3>包含并创建实例</h3>
<p>PHPmailer在WP中的的路径是wp-includes/class-phpmailer.php，在使用的时候需要把该文件包含进去，WP中包含文件的函数是<code>require_once();</code>，文件包含进来之后，就可以创建该类的新实例了，创建实例的代码也非常简单，跟大多数语言的创建方法一样：<code>$mail = new PHPMailer;</code>。</p>
<h3>PHPmailer详解</h3>
<p>创建PHPmailer的实例之后，还需要设置一些必要的参数，比如收件人地址、邮件主题、邮件内容等等，好让PHPmailer知道你要把邮件发送给谁以及发送哪些内容。</p>
<p>打开phpmailer.php文件之后，该类的结构和相关变量就一目了然了，这里小狮只把几个比较核心的参数写出来，剩下的大家可以自己去看。</p>
<p>方法函数：</p>
<ul>
<li><strong>IsHTML($bool)</strong>：设置邮件内容为HTML格式（可以带格式信息，如粗体、链接等）。<br />
<em>$bool</em>：布尔值<br />
返回值 ：无</li>
<li><strong>AddAddress($address, $name = &#8220;&#8221;)</strong>：添加一个收件人邮箱地址。<br />
<em>$address</em>：字符串，收件人邮箱地址<br />
<em>$name</em>：字符串，收件人姓名<br />
返回值：无</li>
</ul>
<div>全局变量：</div>
<ul>
<li><strong>$Subject</strong>：字符串，邮件的主题。</li>
<li><strong>$Body ：</strong>字符串，邮件内容。如果IsHTML为Ture，则字符串中的HTML字符将被解析成相应的格式。</li>
<li><strong>$From</strong>：发件人地址，默认是localhost.localdomain。在小狮的contact代码中是直接把留言者的邮箱地址作为发件人了。</li>
<li><strong>$FromName</strong>：发件人姓名，默认是Support。与$from一样，小狮把留言者的姓名直接作为发件人姓名了。</li>
</ul>
<p>设置完这些参数之后PHPmailer已经知道你把什么内容发送给谁，但是现在还没办法发送，因为发送邮件是需要一个邮件发送服务器（SMTP Server）的，设置好SMTP 服务器的地址之后，PHPmailer就会把这些参数信息推送给这个SMTP服务器，让后由这个服务器把邮件发送出去。</p>
<p>代码如下：</p>
<pre class="brush: php">
		$mail-&gt;IsHTML(true);
		$mail-&gt;AddAddress(&quot;h198741@126.com&quot;); // 收件人
		$mail-&gt;Subject = $emailInfo_subject; // 邮件主题
		$mail-&gt;Body = $emailInfo_body; // 邮件内容
		$mail-&gt;From = $_POST[&quot;email&quot;];
		$mail-&gt;FromName = $_POST[&quot;names&quot;];
</pre>
<h3>设置SMTP Server</h3>
<p>需要注意的是，如果不指定SMTP服务器的话，PHPmailer会使用localhost作为SMTP服务器来发送邮件，因为小狮租用的服务器自带一个邮件服务器，所以这里就没有设置SMTP也一样可以发送邮件。</p>
<p>现在有很多邮箱都把自己的SMTP服务器提供给注册用户免费使用，比如网易的126和Gmail，只要注册一个帐号就可以使用他们提供的SMTP服务器了。下面小狮把PHPmailer的SMTP相关设置介绍一下，其实只要用过Outlook之类的邮件客户端都能明白。</p>
<ul>
<li><strong>$Host</strong>：字符串，SMTP服务器地址。一般都是smtp.126.com这种格式。</li>
<li><strong>$Username</strong>：字符串，SMTP服务器的登陆账户名。比如你注册的是126邮箱的话，就把你的126邮箱帐号写上就行了。</li>
<li><strong>$Password</strong>：字符串，SMTP服务器的登陆密码。同上。</li>
</ul>
<div>最后是一个方法函数：<code>IsSMTP()</code>，作用是将PHPmailer的发送模式设置为SMTP模式。</div>
<p>代码如下：</p>
<pre class="brush: php">
		$mail-&gt;IsSMTP; //设置为使用使用SMTP服务器发送邮件的模式
		$mail-&gt;Host = &quot;smtp.gmail.com&quot;;  //使用Gmail的发件服务器来发送邮件
		$mail-&gt;Username = &quot;username&quot;; //输入你在Gmail的用户名
		$mail-&gt;password = &quot;password&quot;; //输入你在Gmail的密码
</pre>
<h3>搞定，发送！</h3>
<p>现在一切设置都已经完毕了，加上<code>$mail-> send();</code>这么一行代码就OK了！当执行到这一行的时候，程序就会按照参数将mail中的内容发送到指定的SMTP服务器上，SMTP服务器将会接收这些信息，并且按照其中的设置进行发送。</p>
<p>小狮的Contact页的完整代码如下（注意小狮是没有设置SMPT模式的哦）：</p>
<pre class="brush: php">
	&lt;?php
		if ($_POST) {
		require_once(ABSPATH.WPINC.&#039;/class-phpmailer.php&#039;);
		// 实例化 PHPMailer 类
		$mail = new PHPMailer;

		$BR = &quot;&lt;br&gt;&quot;;

		$contact_senderName = &quot;&lt;b&gt;&quot;.$_POST[&quot;names&quot;].&quot;&lt;/b&gt;&quot;;;
		$contact_senderEmail = &quot;&lt;a href=&#039;mailto:&quot;.$_POST[&#039;email&#039;].&quot;&#039;&gt;&quot;.$_POST[&quot;email&quot;].&quot;&lt;/a&gt;&quot;;
		$contact_senderURL = &quot;&lt;a href=&#039;&quot;.$_POST[&quot;url&quot;].&quot;&#039;&gt;&quot;.$_POST[&quot;url&quot;].&quot;&lt;/a&gt;&quot;;
		$contact_senderPhoneNum = $_POST[&quot;contactnum&quot;];
		$contact_subject = $_POST[&quot;subject&quot;];
		$contact_msg = $_POST[&quot;message&quot;];

		$emailInfo_subject = &quot;Contac Page的新消息:&quot;.$_POST[&quot;names&quot;];
		$emailInfo_body =
			&quot;姓名: &quot;.$contact_senderName.$BR
			.&quot;Email: &quot;.$contact_senderEmail.$BR
			.&quot;个人网站: &quot;.$contact_senderURL.$BR
			.&quot;联系方式: &quot;.$contact_senderPhoneNum.$BR.$BR
			.&quot;标题: &quot;.$contact_subject.$BR
			.$contact_msg;

		// 填入最基本的参数
		$mail-&gt;IsHTML(true);
		$mail-&gt;AddAddress(&quot;h198741@126.com&quot;); // 收件人
		$mail-&gt;Subject = $emailInfo_subject; // 邮件主题
		$mail-&gt;Body = $emailInfo_body; // 邮件内容
		$mail-&gt;From = $_POST[&quot;email&quot;];
		$mail-&gt;FromName = $_POST[&quot;names&quot;];

		if(!$mail-&gt;Send()) // 发送邮件
		{
		echo &quot;&lt;p class=&#039;result&#039;&gt;信息发送失败, 请重新尝试或选择其他联系方式...&lt;/p&gt;&quot;;
		exit;
		}

		echo &quot;&lt;p class=&#039;result&#039;&gt;信息发送成功! 你的留言已经发送到Liony的邮箱中, 他会在稍后联系你.&lt;/p&gt;&quot;;
		}
    ?&gt;
        &lt;form action=&quot;/contact&quot; method=&quot;post&quot; onSubmit=&quot;return checkfrm_contact();&quot; id=&quot;contactform&quot;&gt;
          &lt;fieldset&gt;
          &lt;label for=&quot;names&quot;&gt;姓名&lt;/label&gt;
          &lt;input type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;50&quot; name=&quot;names&quot; id=&quot;names&quot;/&gt;
          &lt;label for=&quot;email&quot;&gt;E-mail 地址&lt;/label&gt;
          &lt;input type=&quot;text&quot; value=&quot;&quot; class=&quot;t&quot; maxlength=&quot;100&quot; name=&quot;email&quot; id=&quot;email&quot;/&gt;
          &lt;label for=&quot;url&quot;&gt;个人网站&lt;/label&gt;
          &lt;input type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;100&quot; name=&quot;url&quot; id=&quot;url&quot;/&gt;
          &lt;label for=&quot;contactnum&quot;&gt;联系方式&lt;/label&gt;
          &lt;input type=&quot;text&quot; value=&quot;&quot; onKeyPress=&quot;return numbersonly(this, event)&quot; maxlength=&quot;100&quot; name=&quot;contactnum&quot; id=&quot;contactnum&quot;/&gt;
          &lt;/fieldset&gt;
          &lt;fieldset id=&quot;msg&quot;&gt;
          &lt;label for=&quot;subject&quot;&gt;标题&lt;/label&gt;
          &lt;input type=&quot;text&quot; maxlength=&quot;100&quot; name=&quot;subject&quot; id=&quot;subject&quot;/&gt;
          &lt;label for=&quot;message&quot;&gt;内容&lt;/label&gt;
          &lt;textarea rows=&quot;12&quot; cols=&quot;30&quot; name=&quot;message&quot; id=&quot;message&quot;&gt;&lt;/textarea&gt;
          &lt;/fieldset&gt;
          &lt;fieldset&gt;
          &lt;button value=&quot;1&quot; name=&quot;submit&quot; type=&quot;submit&quot;&gt;Submit&lt;/button&gt;
          &lt;/fieldset&gt;
        &lt;/form&gt;
</pre>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2008 |
<a href="http://www.imliony.cn/blog/234.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/234.hyh/#comments">已有4条评论</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://www.imliony.cn/blog/tag/learning/" rel="tag">学习</a>, <a href="http://www.imliony.cn/blog/tag/%e6%8a%80%e5%b7%a7/" rel="tag">技巧</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%96%99/" rel="tag">资料</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/234.hyh/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>IBM的PHP教程</title>
		<link>http://www.imliony.cn/blog/115.hyh/</link>
		<comments>http://www.imliony.cn/blog/115.hyh/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 10:20:45 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[有用收藏]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[学习]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[资源]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/115.hyh</guid>
		<description><![CDATA[
转自Andy&#8217;s Blog
留作资料吧，最近开始对Flex和PHP感兴趣，学习一下。......]]></description>
			<content:encoded><![CDATA[<p>转自<a href="http://www.21andy.com/blog/20080228/1015.html" target="_blank">Andy&#8217;s Blog</a></p>
<p>留作资料吧，最近开始对Flex和PHP感兴趣，学习一下。</p>
<h3>概述</h3>
<p><a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/intro/index.html">PHP 简介</a></p>
<h3>部署</h3>
<p><a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/intro/index.html">安装 XAMPP 进行方便集成开发</a></p>
<h3>源代码控制</h3>
<p><a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=108167">利用 PHP 和 Subversion 从零开始创建一个 blog</a></p>
<h3>开发</h3>
<p><strong>学习 PHP<br />
</strong><a href="http://www-128.ibm.com/developerworks/cn/opensource/os-phpobj/">开始了解 PHP V5 中的对象</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php-flexobj/">用 PHP 走向动态</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=91117">学习 PHP，第一部分</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=91118">学习 PHP，第二部分</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=91693">学习 PHP，第三部分</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/wa-phprock1/index.html">用 PHP 开发健壮的代码，第 1 部分</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/wa-phprock2/index.html">用 PHP 开发健壮的代码，第 2 部分：有效地使用变量</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/wa-phprock3/index.html">用 PHP 开发健壮的代码，第 3 部分：编写可重用函数 &#8212; 充分利用函数</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/w-zoltan/index.html">PHP 例解,第 1 部分：轻松的 Webzine 编辑和发送</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/web-zoltan2/index.html">PHP 例解,第 2 部分：深入研究 Webzine 编辑和发送</a></p>
<p><strong>高级 PHP </strong><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-advphpobj/">高级 PHP V5 对象</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110102">用 PHP 构建 Web 服务</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110077/">用 PHP 绘制 3-D 图像</a><br />
<a href="http://www.ibm.com/developerworks/cn/opensource/os-objorient/">使用 PHP 创建图形的巧妙方法</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=102961">如何在 PHP 中使用正则表达式</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/wa-phpform/index.html">结合 PHP 使用 HTML 表单</a><br />
<a href="http://www.ibm.com/developerworks/cn/opensource/os-xmldomphp/">用 PHP 读取和编写 XML DOM</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-phpws/index.html">通过 PHP 脚本访问企业应用</a></p>
<p><strong>PHP 设计<br />
</strong><a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/php_design/index.html">MVC 模式、类封装还是黑客代码——合理设计 PHP 项目</a></p>
<p><strong>PHP 应用<br />
</strong><a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110077/">使用 PHP 构建搜索优化应用程序，第 1 部分：入门</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110095">用 OpenLaszlo 装点 PHP 应用，第 1 部分: 创建交互式界面</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110096">用 OpenLaszlo 装点 PHP 应用，第 2 部分: PHP REST 和数据绑定</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110097">用 OpenLaszlo 装点 PHP 应用，第 3 部分: 添加数据库</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/l-snort/">使用 Snort 和 PHP 构建一个小型网络防御系统</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/wa-phpolla/index.html">用 PHP 使 Web 数据分析进入更高境界 &#8212; 设计您的数据分析，做比简单原始计数更多的事</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/wa-linphp/index.html">用 PHP 实现的简单线性回归：第 1 部分 &#8212; 数学库在 PHP 中的重要性</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/wa-linphp2/index.html">用 PHP 实现的简单线性回归，第 2 部分 &#8212; 解决输出和概率函数缺陷的数据研究工具</a></p>
<p><strong>调试和监测 </strong><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-debug/">PHP 程序员的调试技术</a></p>
<h3>集成</h3>
<p><strong>IBM 数据库服务器<br />
</strong><a href="http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0511appdev/">使用 DB2 UDB 进行应用程序开发</a><br />
<a href="http://www.ibm.com/developerworks/db2/library/techarticle/dm-0502scott/?S_TACT=105AGX52&amp;S_CMP=cn-a-os">用 PHP 开发 IBM Cloudscape 和 DB2 通用数据库应用程序</a><br />
<a href="http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0505furlong/">通过 PDO 将 PHP 连接到 DB2 和 Cloudscape</a><br />
<a href="http://www.ibm.com/developerworks/db2/library/techarticle/dm-0502nickolas/?S_TACT=105AGX52&amp;S_CMP=cn-a-os">Zend Core for IBM 技术路线图</a><br />
<a href="http://www.ibm.com/developerworks/db2/library/techarticle/dm-0507hutchison/?S_TACT=105AGX52&amp;S_CMP=cn-a-os">Zend Core for IBM &#8211; PHP 开发人员指南</a><br />
<a href="http://www.ibm.com/developerworks/db2/library/techarticle/dm-0602hutchison/?S_TACT=105AGX52&amp;S_CMP=cn-a-os">DB2 Express-C：IBM 提供的免费大餐</a></p>
<p><strong>IBM Web 和应用服务器<br />
</strong><a href="http://www.ibm.com/developerworks/cn/opensource/os-phphttp/">在 IBM HTTP Server 上部署 PHP 应用程序</a><br />
<a href="http://www.ibm.com/developerworks/cn/websphere/techjournal/0505_krook/0505_krook.html">IBM WebSphere 开发者技术期刊: 使用 PHP 和 J2EE 来实现通用的 Web 应用程序基础架构</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=108168">在 Apache Geronimo 中运行 PHP 应用程序</a></p>
<p><strong>第三方服务<br />
</strong><a href="http://www.ibm.com/developerworks/cn/views/webservices/tutorials.jsp?cv_doc_id=96126">使用 Web 服务和 eBay SDK 开发应用程序，第 1 部分： 构建 eBay 搜索引擎</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/webservices/tutorials.jsp?cv_doc_id=102702">使用 Web 服务和 eBay SDK 开发应用程序，第 2 部分：使用 eBay SOAP API 构建一个 eBay 搜索引擎</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=101469">用 PHP、Derby 和 PayPal 创建 Web 店面，第 1 部分：设置基本数据库</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=101470">用 PHP、Derby 和 PayPal 创建 Web 店面，第 2 部分：收集付款</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=101471">用 PHP、Derby 和 PayPal 创建 Web 店面，第 3 部分: 设置订单、送货和电子邮件</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=100537">用 PHP 创建 Amazon 店面，第 1 部分：用 Amazon ECS 获得内容</a></p>
<p><strong>扩展 </strong><br />
<a href="http://www.ibm.com/developerworks/cn/opensource/os-sdophp/">PHP 服务数据对象简介</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-phpbot/">如何使您的 PHP 应用程序变成聊天机器人</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/template/evaluate/index.html">在 PHP 世界中选择最合适的模板</a></p>
<p><strong>PEAR（PHP Extension and Application Repository）<br />
</strong><a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/pear1/index.html">PEAR 简介：用 PEAR 来写你的下一个 PHP 程序</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/pear2/index.html">PEAR 简介：常用模块</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/pear3/index.html">PEAR 简介：使用 PHPDoc 轻松建立你的 PEAR 文档</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/pear4/index.html">PEAR 简介：创建中间的数据库应用层</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/linux/sdk/php/pear5/index.html">PEAR 实践：PHP 中 MVC 机制的实现</a></p>
<p><strong>安全性 </strong><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=110103">确保 PHP 应用程序的安全</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php1/">审计 PHP，第 1 部分：理解 register_globals</a></p>
<p><strong>PHP Zend 框架<br />
</strong><a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php-zend1/index.html">理解 Zend 框架，第 1 部分：基础 &#8212; 介绍 Zend 框架</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=169446">理解 Zend 框架，第 2 部分: 模型-视图-控制器及添加数据库</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=169447">理解 Zend 框架，第 3 部分: 提要（RSS）</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php-zend4/index.html">理解 Zend 框架，第 4 部分: 使用 Zend_HTTP_Client 获取无提要的内容</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=170879">理解 Zend 框架，第 5 部分: 创建 PDF 文件</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php-zend6/index.html">理解 Zend 框架，第 6 部分: 发送电子邮件</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php-zend7/index.html">理解 Zend 框架，第 7 部分: 搜索</a><br />
<a href="http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=170880">理解 Zend 框架，第 8 部分：添加相关信息和服务</a><br />
<a href="http://www-128.ibm.com/developerworks/cn/opensource/os-php-zend9/index.html">理解 Zend 框架，第 9 部分: 用 Ajax 和 JSON 添加交互性</a></p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2008 |
<a href="http://www.imliony.cn/blog/115.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/115.hyh/#comments">没有评论（啊，沙发在召唤你…）</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/learning/" rel="tag">学习</a>, <a href="http://www.imliony.cn/blog/tag/%e5%bc%80%e5%8f%91/" rel="tag">开发</a>, <a href="http://www.imliony.cn/blog/tag/%e8%b5%84%e6%ba%90/" rel="tag">资源</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/115.hyh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress的日期格式</title>
		<link>http://www.imliony.cn/blog/95.hyh/</link>
		<comments>http://www.imliony.cn/blog/95.hyh/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 02:52:58 +0000</pubDate>
		<dc:creator>liony</dc:creator>
				<category><![CDATA[有用收藏]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[技巧]]></category>
		<category><![CDATA[日期时间]]></category>

		<guid isPermaLink="false">http://www.imliony.cn/blog/95.hyh</guid>
		<description><![CDATA[
WordPress采用PHP开发，所以日期格式的设置非常丰富。PHP提供了data()函数来获取日期，该函数有一个参数用来指定获取的时间日期格式。
例子：......]]></description>
			<content:encoded><![CDATA[<p>WordPress采用PHP开发，所以日期格式的设置非常丰富。PHP提供了data()函数来获取日期，该函数有一个参数用来指定获取的时间日期格式。</p>
<p>例子：
<pre class="brush: php">date(&#039;l jS \of F Y h:i:s A&#039;);

//这段代码将输出以下字符:
&quot;Monday 8th of August 2005 03:12:46 PM&quot;</pre>
<p>下面就是参数的详细解释。这些资料是从<a href="http://cn.php.net/date">CN.php.net</a>上找到的，上面有非常详细的资料和说明。</p>
<h3>日</h3>
<p>d：月份中的第几天，有前导零的 2 位数字，从 01 到 31。<br />
D： 星期中的第几天，文本表示，是缩写格式，从 Mon 到 Sun。<br />
j：月份中的第几天，没有前导零，从1 到 31。<br />
l（“L”的小写字母）：星期几，是完整的格式，从Sunday 到 Saturday。<br />
N：数字表示的星期中的第几天，从1（表示星期一）到 7（表示星期天）。<br />
S：每月天数后面的英文后缀，2 个字符，st，nd，rd 或者 th。可以和 j 一起用。<br />
w：星期中的第几天，数字表示，从0（表示星期天）到 6（表示星期六）。<br />
z：年份中的第几天，从0 到 366。</p>
<h3>星期</h3>
<p>W： ISO-8601 格式年份中的第几周，每周从星期一开始，例如：42（当年的第 42 周）。</p>
<h3>月</h3>
<p>F：月份，完整的文本格式，从January 到 December。<br />
m： 数字表示的月份，有前导零，从01 到 12。<br />
M：三个字母缩写表示的月份，从Jan 到 Dec。<br />
n：数字表示的月份，没有前导零，从1 到 12。<br />
t：给定月份所应有的天数，从28 到 31。</p>
<h3>年</h3>
<p>L：是否为闰年。如果是闰年为 1，否则为 0。<br />
o：年份数字。这和 Y 的值相同，只除了如果 ISO 的星期数（W）属于前一年或下一年，则用那一年。例如：1999或2003。<br />
Y：4 位数字完整表示的年份，例如：1999 或 2003。<br />
y：2 位数字表示的年份，例如：99 或 03。</p>
<h3>时间</h3>
<p>a：小写的上午和下午值，am 或 pm。<br />
A：大写的上午和下午值，AM 或 PM。<br />
B：Swatch Internet 标准时，000 到 999。<br />
g：小时，12 小时格式，没有前导零，从1 到 12。<br />
G：小时，24 小时格式，没有前导零，从0 到 23。<br />
h：小时，12 小时格式，有前导零，从01 到 12。<br />
H：小时，24 小时格式，有前导零，从00 到 23。<br />
i：有前导零的分钟数，从00 到 59。<br />
s：秒数，有前导零，从00 到 59。</p>
<h3>时区</h3>
<p>e：时区标识， 例如：UTC，GMT，Atlantic/Azores。<br />
I：是否为夏令时。如果是夏令时为 1，否则为 0。<br />
O：与格林威治时间相差的小时数，例如：+0200。<br />
P：与格林威治时间（GMT）的差别，小时和分钟之间有冒号分隔，例如：+02:00。<br />
T：本机所在的时区，例如：EST，MDT（在 Windows 下为完整文本格式，例如“Eastern Standard Time”，中文版会显示“中国标准时间”）。<br />
Z：时差偏移量的秒数。UTC 西边的时区偏移量总是负的，UTC 东边的时区偏移量总是正的。从-43200 到 43200。</p>
<h3>完整的日期／时间</h3>
<p>c：完整的日期，例如：2004-02-12T15:19:21+00:00。<br />
r：RFC 822 格式的日期，例如：Thu, 21 Dec 2000 16:01:07 +0200。<br />
U：从 Unix 纪元（January 1 1970 00:00:00 GMT）开始至今的秒数。（具体使用方法参见 <a href="http://cn.php.net/manual/zh/function.time.php" target="_blank">time()</a>函数）</p>
<hr />
<p><a href="http://www.imliony.cn">Liony_小狮</a>版权所有<span style="font-size:12px;">©</span> 2008 |
<a href="http://www.imliony.cn/blog/95.hyh/">原文链接</a> |
<a href="http://www.imliony.cn/blog/95.hyh/#comments">已有7条评论</a> |
</p>
<p>文章标签: <a href="http://www.imliony.cn/blog/tag/php/" rel="tag">PHP</a>, <a href="http://www.imliony.cn/blog/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://www.imliony.cn/blog/tag/%e6%8a%80%e5%b7%a7/" rel="tag">技巧</a>, <a href="http://www.imliony.cn/blog/tag/%e6%97%a5%e6%9c%9f%e6%97%b6%e9%97%b4/" rel="tag">日期时间</a></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imliony.cn/blog/95.hyh/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
