<?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>xunwap</title>
	<atom:link href="http://xunwap.net/feed" rel="self" type="application/rss+xml" />
	<link>http://xunwap.net</link>
	<description>专注移动互联网服务</description>
	<lastBuildDate>Sat, 15 Jan 2011 14:39:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>WordPress代码阅读体会</title>
		<link>http://xunwap.net/archives/admin-column/wordpress%e4%bb%a3%e7%a0%81%e9%98%85%e8%af%bb%e4%bd%93%e4%bc%9a.html</link>
		<comments>http://xunwap.net/archives/admin-column/wordpress%e4%bb%a3%e7%a0%81%e9%98%85%e8%af%bb%e4%bd%93%e4%bc%9a.html#comments</comments>
		<pubDate>Fri, 14 Jan 2011 14:35:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长专栏]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=780</guid>
		<description><![CDATA[WordPress代码阅读体会]]></description>
			<content:encoded><![CDATA[<p>最近在阅读WordPress-3.0.4的源代码。总的感觉是代码结构清晰，简单明了。当然，最深的感触还是WordPress代码中的文档和注释&#8211;非常详细。WordPress的代码中详细记录了每一个模块的功能，变更历史；每一个class的功能，作用范围；每一个函数的功能，接口参数，以有返回值&#8230;从WordPress源代码的读者方面来说，有了如此丰富的文档和注释，阅读WordPress的代码是一件相对容易和有趣的事情。</p>
<p>从WordPress项目本身来说，对于一个新加入的开发者来说，有如此详细的文档和注释，即使在没有其它的成员的帮助的指导的前提下，新加入的成员也能很容易地从中了解WordPress的整体架构和逻辑流程。这一点，对于WordPress这个优秀的开源项目的发展壮大也是至关重要的。</p>
<p>很多不喜欢写注释和文档的开发者总喜欢说: &#8220;代码就是最好的注释，我的代码是自解释的，所以文档不是必需的&#8230;&#8221;。能做到上述三种自然是好的，但是这并不能代替文档和注释。对于一个大的项目，如果没有文档，一个新手可能需要很长时间才能融入；如果没有注释，对于大部分人来说，自己亲手写的功能模块，在半年之后，可能自己都不让识了，自已都搞不明白其中的逻辑和流程。要知道，文字和图像用于展示信息的能力比代码要强很多倍，所以，有了文档和注释，你能以更快的速度了解一份新的代码。文档和注释，于人于已都是善举。</p>
<p style="padding-left: 390px;"><strong><a title="WordPress代码阅读总结" href="http://xunwap.net/archives/admin-column/wordpress代码阅读体会.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/admin-column/wordpress%e4%bb%a3%e7%a0%81%e9%98%85%e8%af%bb%e4%bd%93%e4%bc%9a.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS 阅读器: FeedDemon</title>
		<link>http://xunwap.net/archives/sharing-ideas/windows/rss-%e9%98%85%e8%af%bb%e5%99%a8-feeddemon.html</link>
		<comments>http://xunwap.net/archives/sharing-ideas/windows/rss-%e9%98%85%e8%af%bb%e5%99%a8-feeddemon.html#comments</comments>
		<pubDate>Thu, 13 Jan 2011 15:27:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[FeedDemon]]></category>
		<category><![CDATA[RSS Reader]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=778</guid>
		<description><![CDATA[RSS 阅读器: FeedDemon]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">使用RSS来订阅一些比较好的博客是获取信息的一种好方式，为了使这种订阅更加有效，一个好的订阅工具是必不可少的了。</div>
<div id="_mcePaste">有比较多的RSS阅读器，比较有代表性的是: 基于Web的Google Reader和基于桌面的FeedDemon。</div>
<div id="_mcePaste">基于Web的Google Reader功能与FeedDemon类似，不过由于是基于Web的，所以操作的流畅性不如基于桌面的FeedDemon。</div>
<div id="_mcePaste">FeedDemon也是一个免费软件，主要的特色功能如下，推荐使用:</div>
<p><span style="font-family: 'Segoe UI', 'Trebuchet MS', Tahoma, Arial, sans-serif; line-height: 24px; font-size: 14px; color: #353535;"><strong>Google Reader Synchronization</strong><br />
Use FeedDemon at home, your office, or anywhere you go and keep your feeds, tags and shared items synched between locations.</span></p>
<p><strong>Sharing</strong><br />
FeedDemon&#8217;s simple single-click sharing lets your friends subscribe to your favorite articles.</p>
<p><strong>Tagging</strong><br />
Assign your own keywords to items, making it easy to classify and locate articles you&#8217;ve previously read.</p>
<p><strong>Watches</strong><br />
Tell FeedDemon to let you know when your keywords appear in any feed you&#8217;re subscribed to.</p>
<p><strong>Search Feeds</strong><br />
Get alerted when your keywords appear in any feed, regardless of whether you&#8217;re subscribed to it.</p>
<p><strong>Podcasts</strong><br />
Let FeedDemon automatically download audio files and copy them to your iPod or other media device.</p>
<p style="padding-left: 390px;"><strong><a title="RSS Reader 推荐" href="http://xunwap.net/archives/sharing-ideas/windows/rss-阅读器-feeddemon.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/sharing-ideas/windows/rss-%e9%98%85%e8%af%bb%e5%99%a8-feeddemon.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Manpages CHM 下载</title>
		<link>http://xunwap.net/archives/server-development/linux-server-development/linux-manpages-chm-%e4%b8%8b%e8%bd%bd.html</link>
		<comments>http://xunwap.net/archives/server-development/linux-server-development/linux-manpages-chm-%e4%b8%8b%e8%bd%bd.html#comments</comments>
		<pubDate>Tue, 11 Jan 2011 16:02:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CHM]]></category>
		<category><![CDATA[Linux manpages]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=774</guid>
		<description><![CDATA[Linux Manpages CHM 下载]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">在Windows下通过SSH连接到远程的Linux主机上进行开发时，如果需要查看对应的API文档，可以使用 man 命令。但是，</div>
<div id="_mcePaste">既然是在基于GUI的Windows下，使用集成的文档手册进行查阅将更方便，也更快捷。好在有大量的经过整理的Linux API手册，</div>
<div id="_mcePaste">这里推荐一本比较详尽且与囊括了最新的Linux API的一本Manpages整理成的CHM手册。</div>
<p><strong>猛击<a title="Linux manpages CHM 下载" href="http://www.kernel.org/pub/linux/docs/manpages/" target="_blank">此处</a>下载</strong></p>
<p style="padding-left: 390px;"><strong><a title="Linux manpages CHM 下载" href="http://xunwap.net/archives/server-development/linux-server-development/linux-manpages-chm-下载.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/server-development/linux-server-development/linux-manpages-chm-%e4%b8%8b%e8%bd%bd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211;force 参数含义</title>
		<link>http://xunwap.net/archives/server-development/mysql/mysql-force-%e5%8f%82%e6%95%b0%e5%90%ab%e4%b9%89.html</link>
		<comments>http://xunwap.net/archives/server-development/mysql/mysql-force-%e5%8f%82%e6%95%b0%e5%90%ab%e4%b9%89.html#comments</comments>
		<pubDate>Tue, 11 Jan 2011 15:39:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[--force参数]]></category>
		<category><![CDATA[SQL批量导入]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=771</guid>
		<description><![CDATA[MySQL --force 参数含义]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">在使用类似于: <strong>&#8220;mysql &#8211;database=xxx &lt; sql_file.sql</strong>&#8221; 的形式来将SQL语句批量导入到MySQL中时，如果此文件中的某一条SQL在入库的过程中发生错误，那么&#8221;<strong>mysql &#8211;database=xxx &lt; sql_file.sql</strong>&#8220;命令会停止运行。</div>
<div>因此，这条引发错误的SQL之后的所有的SQL都将无法导入数据库。如果我们需要忽略导入过程中的SQL，并继续执行其后的所有的SQL直到全部导入完成，那么就需要在上述命令中加入&#8221;&#8211;force&#8221;参数，也即是导入命令为: &#8220;<strong>mysql &#8211;force &#8211;database=xxx &lt; sql_file.sql</strong>&#8220;。</div>
<div>大多数情况下并不建议在批量导入过程中使用&#8221;&#8211;force&#8221;参数，因为如果忽略了其中本不应该发生的SQL错误，那么可以导致导入的数据发生错误。</div>
<p style="padding-left: 390px;"><strong><a title="MySQL --force 参数含义" href="http://xunwap.net/archives/server-development/mysql/mysql-force-参数含义.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/server-development/mysql/mysql-force-%e5%8f%82%e6%95%b0%e5%90%ab%e4%b9%89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 中文文档下载</title>
		<link>http://xunwap.net/archives/web-development/php-development/php-%e4%b8%ad%e6%96%87%e6%96%87%e6%a1%a3%e4%b8%8b%e8%bd%bd.html</link>
		<comments>http://xunwap.net/archives/web-development/php-development/php-%e4%b8%ad%e6%96%87%e6%96%87%e6%a1%a3%e4%b8%8b%e8%bd%bd.html#comments</comments>
		<pubDate>Mon, 10 Jan 2011 13:34:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开发]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP中文文档]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=766</guid>
		<description><![CDATA[PHP 中文文档下载]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">PHP官方网站上的中文文档由于更新速度过慢，导致中文文档与英文文档之间的更新进度差距太多，使得从其中文文档中无法获得PHP文档中最新的信息和说明。好在现在有一份新的PHP中文文档，由HonestQiao维护，文档中带最新评论。PHP中文文档托管在google code上，其更新记录如下:</div>
<div>
<p><span style="font-family: monospace; line-height: normal; font-size: 12px; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"> </span></p>
<pre class="prettyprint" style="font-size: 13px; margin-left: 2em; border-left-width: 3px; border-left-style: solid; border-left-color: #cccccc; padding: 0.5em;"><span class="lit" style="color: #006666;">1.</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">最新</span><span class="pln" style="color: #000000;">PHP</span><span class="pun" style="color: #666600;">中文/英文手册，每周</span><span class="pln" style="color: #000000;">SVN</span><span class="pun" style="color: #666600;">同步到最新版本</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">2.</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">整合在线评论信息，蕴含巨大宝藏，学习进阶必备</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">3.</span><span class="pln" style="color: #000000;"> CHM</span><span class="pun" style="color: #666600;">格式，方便随身携带，可与其他软件完美配合使用</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">4.</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">导航详细，索引完整，搜索方便</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">5.</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">需求征集，打造最易用</span><span class="pln" style="color: #000000;">PHP</span><span class="pun" style="color: #666600;">中文</span><span class="pln" style="color: #000000;">CHM</span><span class="pun" style="color: #666600;">手册</span><span class="pln" style="color: #000000;">

</span><span class="pun" style="color: #666600;">一、更新日志：</span><span class="typ" style="color: #660066;">ChangeLog</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">0.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2007</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">10</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">5</span><span class="pun" style="color: #666600;">日，开始提供本</span><span class="pln" style="color: #000000;">CHM</span><span class="pun" style="color: #666600;">手册</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">1.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2008</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">3</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">19</span><span class="pun" style="color: #666600;">日，因官方问题，老版本暂停继续更新</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">2.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">8</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">1</span><span class="pun" style="color: #666600;">日，准备新版本，学习最新资料，准备代码和处理脚本</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">3.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">8</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">5</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.1</span><span class="pun" style="color: #666600;">提供测试，基本整合最新手册和评论</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">4.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">8</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">11</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.2</span><span class="pun" style="color: #666600;">提供测试，样式修改基本完善</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">5.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">8</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">12</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.3</span><span class="pun" style="color: #666600;">提供测试，版式完善，加上了</span><span class="pln" style="color: #000000;">CHM</span><span class="pun" style="color: #666600;">导航目录和索引，可供正式使用</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">6.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">8</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">17</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.4</span><span class="pun" style="color: #666600;">提供测试，修正编码问题，可供</span><span class="pln" style="color: #000000;">Windows</span><span class="pun" style="color: #666600;">/</span><span class="pln" style="color: #000000;">CHM</span><span class="pun" style="color: #666600;">、</span><span class="typ" style="color: #660066;">ChmSee</span><span class="pun" style="color: #666600;">、</span><span class="pln" style="color: #000000;">iCHM</span><span class="pun" style="color: #666600;">等完好好使用！</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">7.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">8</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">29</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.5</span><span class="pun" style="color: #666600;">提供测试，加入在线中文和英文手册的连接，提供英文手册</span><span class="pln" style="color: #000000;">CHM</span><span class="pun" style="color: #666600;">整合评论版。</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">8.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">9</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">2</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.6</span><span class="pun" style="color: #666600;">提供测试，特别纪念</span><span class="pln" style="color: #000000;">PHP</span><span class="pun" style="color: #666600;">手册中文翻译补完计划手册首次提交</span><span class="pln" style="color: #000000;"> PHP</span><span class="pun" style="color: #666600;">官方</span><span class="pln" style="color: #000000;">SVN</span><span class="pun" style="color: #666600;">。</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">9.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">9</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">9</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.7</span><span class="pun" style="color: #666600;">提供测试，评论内</span><span class="pln" style="color: #000000;">PHP</span><span class="pun" style="color: #666600;">代码高亮，并加入手册新版本更新提醒功能（下次更新后，即可自动提示）。</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">10.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">9</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">18</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.8</span><span class="pun" style="color: #666600;">提供测试，</span><span class="lit" style="color: #006666;">9.18</span><span class="pun" style="color: #666600;">纪念版。</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">11.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">9</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">26</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.9</span><span class="pun" style="color: #666600;">提供测试</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">12.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">10</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">2</span><span class="pun" style="color: #666600;">日，正在完善相关处理脚本和程序，为正式发布做准备；因手册本身无实质变化，暂不上传本周版本！</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">13.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">10</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">10</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.9.2</span><span class="pun" style="color: #666600;">提供测试</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">14.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">11</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">12</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.9.3</span><span class="pun" style="color: #666600;">提供测试，开始修复手册中过期内容</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">15.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">11</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">29</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.9.4</span><span class="pun" style="color: #666600;">提供测试，修复大量内部跳转链接问题</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">16.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">12</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">10</span><span class="pun" style="color: #666600;">日，</span><span class="lit" style="color: #006666;">2010</span><span class="pun" style="color: #666600;">演示版</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.9.5</span><span class="pun" style="color: #666600;">提供测试，纪念</span><span class="pln" style="color: #000000;">PHP5</span><span class="lit" style="color: #006666;">.3.4</span><span class="pun" style="color: #666600;">发布</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">17.</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">2011</span><span class="pun" style="color: #666600;">年</span><span class="lit" style="color: #006666;">1</span><span class="pun" style="color: #666600;">月</span><span class="lit" style="color: #006666;">1</span><span class="pun" style="color: #666600;">日，</span><span class="pln" style="color: #000000;">V0</span><span class="lit" style="color: #006666;">.9.6</span><span class="pun" style="color: #666600;">提供测试，元旦快乐</span><span class="pln" style="color: #000000;">

</span><span class="pun" style="color: #666600;">二、当前问题列表：</span><span class="pln" style="color: #000000;">BUG
</span><span class="lit" style="color: #006666;">1.</span><span class="pln" style="color: #000000;"> CHM</span><span class="pun" style="color: #666600;">左则目录没有目录细节：已处理</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">2.</span><span class="pln" style="color: #000000;"> CHM</span><span class="pun" style="color: #666600;">左则索引基本没有：已处理</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">3.</span><span class="pln" style="color: #000000;"> CHM</span><span class="pun" style="color: #666600;">导航信息与</span><span class="pln" style="color: #000000;">CHM</span><span class="pun" style="color: #666600;">内容编码不一致，导致部分</span><span class="pln" style="color: #000000;">chm</span><span class="pun" style="color: #666600;">查看器乱码：已处理</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">4.</span><span class="pln" style="color: #000000;"> xCHM</span><span class="pun" style="color: #666600;">查看时导航乱码（主要因为</span><span class="pln" style="color: #000000;">xCHM</span><span class="pun" style="color: #666600;">自身问题，望各位提供解决方法）</span><span class="pln" style="color: #000000;">

</span><span class="pun" style="color: #666600;">三、当前需求列表：</span><span class="pln" style="color: #000000;">TODO
</span><span class="lit" style="color: #006666;">1.</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">评论内</span><span class="pln" style="color: #000000;">PHP</span><span class="pun" style="color: #666600;">代码没有高亮处理：已处理[</span><span class="str" style="color: #008800;">/color[
2. 每个页面加上到对应在线英文manual网址的连接：已处理
3. 加入更新手册后，自动提醒功能：已处理

四、感谢测试（部分人员，其他未列出请见谅）：Thanks
jayeeliu@gmail.com、QQ/50753256、QQ/496995561、QQ/307664144、QQ/258133984、QQ/77304226

五、说明：More
1. 因为属于演示版，所以可能存在问题，例如可能版式、乱码等，但正在全力完善！
2. 请协助改进，与 http://docs.php.net/manual/en/index.php 对比测试
3. 如有问题，敬请告知，多谢了！
4. 反馈请致信 honestqiao@163.com，标题【PHP手册反馈】；
　　亦可通过QQ/5601680、MSN/honestqiao@hotmail.com反馈
5. 一旦测试反馈和修改完善，就进入正式发布队列，每周更新
6. 下载后如打开无法正常查看，请从鼠标右键查看属性，点击解除锁定即可

六、友情推荐：Friend
1. Coreseek开源中文检索引擎，http://www.coreseek.cn/，基于Sphinx，专业针对中文应用，MySQL绝配！</span></pre>
</div>
<p><strong><a title="PHP中文文档下载" href="http://code.google.com/p/phpdocs-cn-chm/downloads/list" target="_blank">PHP中文文档下载</a></strong></p>
<p style="padding-left: 390px;"><strong><a title="PHP中文文档下载" href="http://xunwap.net/archives/web-development/php-development/php-中文文档下载.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/web-development/php-development/php-%e4%b8%ad%e6%96%87%e6%96%87%e6%a1%a3%e4%b8%8b%e8%bd%bd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ String Library</title>
		<link>http://xunwap.net/archives/server-development/boost/c-string-library.html</link>
		<comments>http://xunwap.net/archives/server-development/boost/c-string-library.html#comments</comments>
		<pubDate>Sun, 09 Jan 2011 14:19:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Boost]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=763</guid>
		<description><![CDATA[用std::string来代替char*作为字符串处理的方式在现代的C++开发中已是约定俗成的规则了。不过std::string的公有成员函数的功能是很有限的，而且操作起来并不是很方便，借助于 std::algorithms 来操作std::string时，因为std::algorithms需要面对的是容器的通用操作，也以，也有部分我们所需要的std::string操作无法通过std::algorithms来实现。好在 String Algorithms Library 为std::string弥补了众多在操作上的不足之处。先看看 String Algorithms Library 的函数: Algorithms Table 21.1. Case Conversion Algorithm name Description Functions to_upper Convert a string to upper case to_upper_copy() to_upper() to_lower Convert a string to lower case to_lower_copy() to_lower() Table 21.2. Trimming Algorithm name Description Functions trim_left Remove leading spaces from a string trim_left_copy_if() trim_left_if() trim_left_copy() trim_left() trim_right Remove trailing [...]]]></description>
			<content:encoded><![CDATA[<p>用std::string来代替char*作为字符串处理的方式在现代的C++开发中已是约定俗成的规则了。不过std::string的公有成员函数的功能是很有限的，而且操作起来并不是很方便，借助于 std::algorithms 来操作std::string时，因为std::algorithms需要面对的是容器的通用操作，也以，也有部分我们所需要的std::string操作无法通过std::algorithms来实现。好在 String Algorithms Library 为std::string弥补了众多在操作上的不足之处。先看看 String Algorithms Library 的函数:</p>
<div>
<div>
<div>
<h3>Algorithms</h3>
</div>
</div>
</div>
<div>
<p><a name="id2571311"></a><strong>Table 21.1. Case Conversion</strong></p>
<div>
<table summary="Case Conversion">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><code>to_upper</code></td>
<td align="left">Convert a string to upper case</td>
<td align="left"><code><a title="Function to_upper_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/to_upper_copy.html">to_upper_copy()</a></code><br />
<code><a title="Function template to_upper" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/to_upper.html">to_upper()</a></code></td>
</tr>
<tr>
<td align="left"><code>to_lower</code></td>
<td align="left">Convert a string to lower case</td>
<td align="left"><code><a title="Function to_lower_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/to_lower_copy.html">to_lower_copy()</a></code><br />
<code><a title="Function template to_lower" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/to_lower.html">to_lower()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<p><a name="id2571427"></a><strong>Table 21.2. Trimming</strong></p>
<div>
<table summary="Trimming">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><code>trim_left</code></td>
<td align="left">Remove leading spaces from a string</td>
<td align="left"><code><a title="Function trim_left_copy_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_left_copy_if.html">trim_left_copy_if()</a></code><br />
<code><a title="Function template trim_left_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_left_if.html">trim_left_if()</a></code><br />
<code><a title="Function template trim_left_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_left_copy.html">trim_left_copy()</a></code><br />
<code><a title="Function template trim_left" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_left.html">trim_left()</a></code></td>
</tr>
<tr>
<td align="left"><code>trim_right</code></td>
<td align="left">Remove trailing spaces from a string</td>
<td align="left"><code><a title="Function trim_right_copy_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_right_copy_if.html">trim_right_copy_if()</a></code><br />
<code><a title="Function template trim_right_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_right_if.html">trim_right_if()</a></code><br />
<code><a title="Function template trim_right_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_right_copy.html">trim_right_copy()</a></code><br />
<code><a title="Function template trim_right" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_right.html">trim_right()</a></code></td>
</tr>
<tr>
<td align="left"><code>trim</code></td>
<td align="left">Remove leading and trailing spaces from a string</td>
<td align="left"><code><a title="Function trim_copy_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_copy_if.html">trim_copy_if()</a></code><br />
<code><a title="Function template trim_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_if.html">trim_if()</a></code><br />
<code><a title="Function template trim_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim_copy.html">trim_copy()</a></code><br />
<code><a title="Function template trim" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/trim.html">trim()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<p><a name="id2571675"></a><strong>Table 21.3. Predicates</strong></p>
<div>
<table summary="Predicates">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><code>starts_with</code></td>
<td align="left">Check if a string is a prefix of the other one</td>
<td align="left"><code><a title="Function starts_with" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/starts_with.html">starts_with()</a></code><br />
<code><a title="Function template istarts_with" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/istarts_with.html">istarts_with()</a></code></td>
</tr>
<tr>
<td align="left"><code>ends_with</code></td>
<td align="left">Check if a string is a suffix of the other one</td>
<td align="left"><code><a title="Function ends_with" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ends_with.html">ends_with()</a></code><br />
<code><a title="Function template iends_with" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/iends_with.html">iends_with()</a></code></td>
</tr>
<tr>
<td align="left"><code>contains</code></td>
<td align="left">Check if a string is contained of the other one</td>
<td align="left"><code><a title="Function contains" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/contains.html">contains()</a></code><br />
<code><a title="Function template icontains" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/icontains.html">icontains()</a></code></td>
</tr>
<tr>
<td align="left"><code>equals</code></td>
<td align="left">Check if two strings are equal</td>
<td align="left"><code><a title="Function equals" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/equals.html">equals()</a></code><br />
<code><a title="Function template iequals" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/iequals.html">iequals()</a></code></td>
</tr>
<tr>
<td align="left"><code>lexicographical_compare</code></td>
<td align="left">Check if a string is lexicographically less then another one</td>
<td align="left"><code><a title="Function lexicographical_compare" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/lexicographical_compare.html">lexicographical_compare()</a></code><br />
<code><a title="Function template ilexicographical_compare" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ilexicographical_compare.html">ilexicographical_compare()</a></code></td>
</tr>
<tr>
<td align="left"><code>all</code></td>
<td align="left">Check if all elements of a string satisfy the given predicate</td>
<td align="left"><code><a title="Function template all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/all.html">all()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<p><a name="id2571950"></a><strong>Table 21.4. Find algorithms</strong></p>
<div>
<table summary="Find algorithms">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">find_first</td>
<td align="left">Find the first occurrence of a string in the input</td>
<td align="left"><code><a title="Function template find_first" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_first.html">find_first()</a></code><br />
<code><a title="Function template ifind_first" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ifind_first.html">ifind_first()</a></code></td>
</tr>
<tr>
<td align="left">find_last</td>
<td align="left">Find the last occurrence of a string in the input</td>
<td align="left"><code><a title="Function template find_last" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_last.html">find_last()</a></code><br />
<code><a title="Function template ifind_last" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ifind_last.html">ifind_last()</a></code></td>
</tr>
<tr>
<td align="left">find_nth</td>
<td align="left">Find the nth (zero-indexed) occurrence of a string in the input</td>
<td align="left"><code><a title="Function template find_nth" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_nth.html">find_nth()</a></code><br />
<code><a title="Function template ifind_nth" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ifind_nth.html">ifind_nth()</a></code></td>
</tr>
<tr>
<td align="left">find_head</td>
<td align="left">Retrieve the head of a string</td>
<td align="left"><code><a title="Function template find_head" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_head.html">find_head()</a></code></td>
</tr>
<tr>
<td align="left">find_tail</td>
<td align="left">Retrieve the tail of a string</td>
<td align="left"><code><a title="Function template find_tail" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_tail.html">find_tail()</a></code></td>
</tr>
<tr>
<td align="left">find_token</td>
<td align="left">Find first matching token in the string</td>
<td align="left"><code><a title="Function template find_token" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_token.html">find_token()</a></code></td>
</tr>
<tr>
<td align="left">find_regex</td>
<td align="left">Use the regular expression to search the string</td>
<td align="left"><code><a title="Function template find_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_regex.html">find_regex()</a></code></td>
</tr>
<tr>
<td align="left">find</td>
<td align="left">Generic find algorithm</td>
<td align="left"><code><a title="Function template find" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find.html">find()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<p><a name="id2572226"></a><strong>Table 21.5. Erase/Replace</strong></p>
<div>
<table summary="Erase/Replace">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">replace/erase_first</td>
<td align="left">Replace/Erase the first occurrence of a string in the input</td>
<td align="left"><code><a title="Function template replace_first" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_first.html">replace_first()</a></code><br />
<code><a title="Function replace_first_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_first_copy.html">replace_first_copy()</a></code><br />
<code><a title="Function template ireplace_first" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_first.html">ireplace_first()</a></code><br />
<code><a title="Function ireplace_first_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_first_copy.html">ireplace_first_copy()</a></code><br />
<code><a title="Function template erase_first" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_first.html">erase_first()</a></code><br />
<code><a title="Function erase_first_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_first_copy.html">erase_first_copy()</a></code><br />
<code><a title="Function template ierase_first" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_first.html">ierase_first()</a></code><br />
<code><a title="Function ierase_first_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_first_copy.html">ierase_first_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_last</td>
<td align="left">Replace/Erase the last occurrence of a string in the input</td>
<td align="left"><code><a title="Function template replace_last" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_last.html">replace_last()</a></code><br />
<code><a title="Function replace_last_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_last_copy.html">replace_last_copy()</a></code><br />
<code><a title="Function template ireplace_last" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_last.html">ireplace_last()</a></code><br />
<code><a title="Function ireplace_last_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_last_copy.html">ireplace_last_copy()</a></code><br />
<code><a title="Function template erase_last" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_last.html">erase_last()</a></code><br />
<code><a title="Function erase_last_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_last_copy.html">erase_last_copy()</a></code><br />
<code><a title="Function template ierase_last" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_last.html">ierase_last()</a></code><br />
<code><a title="Function ierase_last_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_last_copy.html">ierase_last_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_nth</td>
<td align="left">Replace/Erase the nth (zero-indexed) occurrence of a string in the input</td>
<td align="left"><code><a title="Function template replace_nth" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_nth.html">replace_nth()</a></code><br />
<code><a title="Function replace_nth_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_nth_copy.html">replace_nth_copy()</a></code><br />
<code><a title="Function template ireplace_nth" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_nth.html">ireplace_nth()</a></code><br />
<code><a title="Function ireplace_nth_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_nth_copy.html">ireplace_nth_copy()</a></code><br />
<code><a title="Function template erase_nth" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_nth.html">erase_nth()</a></code><br />
<code><a title="Function erase_nth_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_nth_copy.html">erase_nth_copy()</a></code><br />
<code><a title="Function template ierase_nth" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_nth.html">ierase_nth()</a></code><br />
<code><a title="Function ierase_nth_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_nth_copy.html">ierase_nth_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_all</td>
<td align="left">Replace/Erase the all occurrences of a string in the input</td>
<td align="left"><code><a title="Function template replace_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_all.html">replace_all()</a></code><br />
<code><a title="Function replace_all_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_all_copy.html">replace_all_copy()</a></code><br />
<code><a title="Function template ireplace_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_all.html">ireplace_all()</a></code><br />
<code><a title="Function ireplace_all_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ireplace_all_copy.html">ireplace_all_copy()</a></code><br />
<code><a title="Function template erase_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_all.html">erase_all()</a></code><br />
<code><a title="Function erase_all_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_all_copy.html">erase_all_copy()</a></code><br />
<code><a title="Function template ierase_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_all.html">ierase_all()</a></code><br />
<code><a title="Function ierase_all_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ierase_all_copy.html">ierase_all_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_head</td>
<td align="left">Replace/Erase the head of the input</td>
<td align="left"><code><a title="Function template replace_head" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_head.html">replace_head()</a></code><br />
<code><a title="Function replace_head_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_head_copy.html">replace_head_copy()</a></code><br />
<code><a title="Function template erase_head" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_head.html">erase_head()</a></code><br />
<code><a title="Function erase_head_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_head_copy.html">erase_head_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_tail</td>
<td align="left">Replace/Erase the tail of the input</td>
<td align="left"><code><a title="Function template replace_tail" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_tail.html">replace_tail()</a></code><br />
<code><a title="Function replace_tail_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_tail_copy.html">replace_tail_copy()</a></code><br />
<code><a title="Function template erase_tail" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_tail.html">erase_tail()</a></code><br />
<code><a title="Function erase_tail_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_tail_copy.html">erase_tail_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_regex</td>
<td align="left">Replace/Erase a substring matching the given regular expression</td>
<td align="left"><code><a title="Function template replace_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_regex.html">replace_regex()</a></code><br />
<code><a title="Function replace_regex_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_regex_copy.html">replace_regex_copy()</a></code><br />
<code><a title="Function template erase_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_regex.html">erase_regex()</a></code><br />
<code><a title="Function erase_regex_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_regex_copy.html">erase_regex_copy()</a></code></td>
</tr>
<tr>
<td align="left">replace/erase_regex_all</td>
<td align="left">Replace/Erase all substrings matching the given regular expression</td>
<td align="left"><code><a title="Function template replace_all_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_all_regex.html">replace_all_regex()</a></code><br />
<code><a title="Function replace_all_regex_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/replace_all_regex_copy.html">replace_all_regex_copy()</a></code><br />
<code><a title="Function template erase_all_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_all_regex.html">erase_all_regex()</a></code><br />
<code><a title="Function erase_all_regex_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/erase_all_regex_copy.html">erase_all_regex_copy()</a></code></td>
</tr>
<tr>
<td align="left">find_format</td>
<td align="left">Generic replace algorithm</td>
<td align="left"><code><a title="Function template find_format" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_format.html">find_format()</a></code><br />
<code><a title="Function find_format_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_format_copy.html">find_format_copy()</a></code><br />
<code><a title="Function template find_format_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_format_all.html">find_format_all()</a></code><br />
<code><a title="Function find_format_all_copy" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_format_all_copy.html">find_format_all_copy()()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<p><a name="id2573116"></a><strong>Table 21.6. Split</strong></p>
<div>
<table summary="Split">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">find_all</td>
<td align="left">Find/Extract all matching substrings in the input</td>
<td align="left"><code><a title="Function template find_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_all.html">find_all()</a></code><br />
<code><a title="Function template ifind_all" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/ifind_all.html">ifind_all()</a></code><br />
<code><a title="Function template find_all_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/find_all_regex.html">find_all_regex()</a></code></td>
</tr>
<tr>
<td align="left">split</td>
<td align="left">Split input into parts</td>
<td align="left"><code><a title="Function template split" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/split_id640478.html">split()</a></code><br />
<code><a title="Function template split_regex" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/split_regex.html">split_regex()</a></code></td>
</tr>
<tr>
<td align="left">iter_find</td>
<td align="left">Iteratively apply the finder to the input to find all matching substrings</td>
<td align="left"><code><a title="Function template iter_find" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/iter_find.html">iter_find()</a></code></td>
</tr>
<tr>
<td align="left">iter_split</td>
<td align="left">Use the finder to find matching substrings in the input and use them as separators to split the input into parts</td>
<td align="left"><code><a title="Function template iter_split" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/iter_split.html">iter_split()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<p><a name="id2573293"></a><strong>Table 21.7. Join</strong></p>
<div>
<table summary="Join">
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">join</td>
<td align="left">Join all elements in a container into a single string</td>
<td align="left"><code><a title="Function template join" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/join.html">join</a></code></td>
</tr>
<tr>
<td align="left">join_if</td>
<td align="left">Join all elements in a container that satisfies the condition into a single string</td>
<td align="left"><code><a title="Function template join_if" href="http://www.boost.org/doc/libs/1_45_0/doc/html/boost/algorithm/join_if_id626240.html">join_if()</a></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<p>Boost.String_Algo 的函数功能是相当的丰富了，也简便易用。所以可以在开发过程中大量使用。</p>
<p>BTW:有很多的人都排斥Boost，在一开始的时候我也不使用Boost，因为有太多的人建议我不要用。后来我还是使用了Boost，而且越用越喜欢，也越发感觉到Boost是一个多么灵活，高效，强大的C++ Library;也体会到了为什么可以称Boost具有&#8221;工业强度&#8221;。在这里，我建议那些不愿意使用Boost的朋友去使用一下Boost，也许你们是听别人建议不要用Boost，也许是自己不愿意使用Boost，但你们一定要去试用Boost中的一些可能用得上的Library，也许用了之后你们的看法会有所改变，也许你们会有不同的发现 <img src='http://xunwap.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="padding-left: 390px;"><strong><a title="C++ 字符串操作库" href="http://xunwap.net/archives/server-development/boost/c-string-library.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/server-development/boost/c-string-library.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Google Protocol Buffer</title>
		<link>http://xunwap.net/archives/web-development/php-development/php-google-protocol-buffer.html</link>
		<comments>http://xunwap.net/archives/web-development/php-development/php-google-protocol-buffer.html#comments</comments>
		<pubDate>Sat, 08 Jan 2011 15:27:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开发]]></category>
		<category><![CDATA[google protocol buffer]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=759</guid>
		<description><![CDATA[PHP: Google Protocol Buffer]]></description>
			<content:encoded><![CDATA[<p>作为通用的协议数据包序列化/反序列化工具，灵活高效的google protocol buffer以众多的优化力压大量的序列化工具和机制: XML,json&#8230;对于大规模的服务，系统之间由多个模块构成，由多种开发语言来协作完成系统中不同的部分。在这种情况下，有一个问题需要解决，那就是如何设计一种通用的数据序列化和反序列化的机制使得可以在系统的多个模块，多种开发语言中进行灵活高效的数据通信。基于google protocol buffer的特点，这种情况下选择google protocol buffer是一个很好的方向。当前的google protocol buffer仅支持: C++,Java,Python。PHP作为WEB开发的主力居然没有得到google protocol buffer的官方支持实在是有一些遗憾。好在开源的力量是巨大的，当前就有一个google protocol buffer支持PHP的接口实现:<a title="google protocol buffer 的PHP实现" href="http://code.google.com/p/pb4php/" target="_blank">pb4php</a>。</p>
<p>使用方法:<br />
// .proto文件如下:</p>
<blockquote><p>
message Person<br />
{<br />
  required string name = 1;<br />
  required int32 id = 2;<br />
  optional string email = 3;</p>
<p>  enum PhoneType {<br />
    MOBILE = 0;<br />
    HOME = 1;<br />
    WORK = 2;<br />
  }</p>
<p>  message PhoneNumber {<br />
    required string number = 1;<br />
    optional PhoneType type = 2 [default = HOME];<br />
  }<br />
  // a simple comment<br />
  repeated PhoneNumber phone = 4;<br />
  optional string surname = 5;<br />
}</p>
<p>message AddressBook {<br />
  repeated Person person = 1;<br />
}
</p></blockquote>
<p>// 序列化操作:</p>
<pre style="color: #000000; background-color: #eeeeee; font-size: 10pt; font-family: 'Courier New';"><span style="color: #0080c0;">$book</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #bb7977; font-weight: bold;">new</span> <span style="color: #004466;">AddressBook</span><span style="color: #ff0080; font-weight: bold;">();</span>
<span style="color: #0080c0;">$person</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #0080c0;">$book</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">add_person</span><span style="color: #ff0080; font-weight: bold;">();</span>
<span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">set_name</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'Kordulla'</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">set_surname</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'Nikolai'</span><span style="color: #ff0080; font-weight: bold;">);</span>

<span style="color: #0080c0;">$phone_number</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">add_phone</span><span style="color: #ff0080; font-weight: bold;">();</span>
<span style="color: #0080c0;">$phone_number</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">set_number</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'49'</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #0080c0;">$phone_number</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">set_type</span><span style="color: #ff0080; font-weight: bold;">(</span>Person_PhoneType<span style="color: #ff0080; font-weight: bold;">::</span>WORK<span style="color: #ff0080; font-weight: bold;">);</span>

<span style="color: #0080c0;">$phone_number</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">add_phone</span><span style="color: #ff0080; font-weight: bold;">();</span>
<span style="color: #0080c0;">$phone_number</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">set_number</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'171'</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #0080c0;">$phone_number</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">set_type</span><span style="color: #ff0080; font-weight: bold;">(</span>Person_PhoneType<span style="color: #ff0080; font-weight: bold;">::</span>MOBILE<span style="color: #ff0080; font-weight: bold;">);</span>

<span style="color: #f27900;">// serialize</span>
<span style="color: #0080c0;">$string</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #0080c0;">$book</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">SerializeToString</span><span style="color: #ff0080; font-weight: bold;">();</span>

<span style="color: #f27900;">// write it to disk</span>
<span style="color: #004466;">file_put_contents</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'adressbook.pb'</span><span style="color: #ff0080; font-weight: bold;">,</span> <span style="color: #0080c0;">$string</span><span style="color: #ff0080; font-weight: bold;">);</span></pre>
<p>// 反序列化操作:</p>
<pre style="color: #000000; background-color: #eeeeee; font-size: 10pt; font-family: 'Courier New';"><span style="color: #0080c0;">$string</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #004466;">file_get_contents</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'./test.pb'</span><span style="color: #ff0080; font-weight: bold;">);</span>

<span style="color: #f27900;">// Just read it</span>
<span style="color: #0080c0;">$book</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #bb7977; font-weight: bold;">new</span> <span style="color: #004466;">AddressBook</span><span style="color: #ff0080; font-weight: bold;">();</span>
<span style="color: #0080c0;">$book</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">parseFromString</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$string</span><span style="color: #ff0080; font-weight: bold;">);</span>

<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$book</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">person_size</span><span style="color: #ff0080; font-weight: bold;">());</span>
<span style="color: #0080c0;">$person</span> <span style="color: #ff0080; font-weight: bold;">=</span> <span style="color: #0080c0;">$book</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">person</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #800080; font-weight: bold;">0</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">name</span><span style="color: #ff0080; font-weight: bold;">());</span>
<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">surname</span><span style="color: #ff0080; font-weight: bold;">());</span>
<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">phone</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #800080; font-weight: bold;">0</span><span style="color: #ff0080; font-weight: bold;">)-&gt;</span><span style="color: #004466;">number</span><span style="color: #ff0080; font-weight: bold;">());</span>
<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">phone</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #800080; font-weight: bold;">0</span><span style="color: #ff0080; font-weight: bold;">)-&gt;</span><span style="color: #004466;">type</span><span style="color: #ff0080; font-weight: bold;">());</span>
<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">phone</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #800080; font-weight: bold;">1</span><span style="color: #ff0080; font-weight: bold;">)-&gt;</span><span style="color: #004466;">number</span><span style="color: #ff0080; font-weight: bold;">());</span>
<span style="color: #004466;">var_dump</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #0080c0;">$person</span><span style="color: #ff0080; font-weight: bold;">-&gt;</span><span style="color: #004466;">phone</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #800080; font-weight: bold;">1</span><span style="color: #ff0080; font-weight: bold;">)-&gt;</span><span style="color: #004466;">type</span><span style="color: #ff0080; font-weight: bold;">());</span></pre>
<p style="padding-left: 390px;"><strong><a title="google protocol buffer 的 PHP 实现" href="http://xunwap.net/archives/web-development/php-development/php-google-protocol-buffer.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/web-development/php-development/php-google-protocol-buffer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>紧急PHP版本升级</title>
		<link>http://xunwap.net/archives/sharing-ideas/site-maintance/%e7%b4%a7%e6%80%a5php%e7%89%88%e6%9c%ac%e5%8d%87%e7%ba%a7.html</link>
		<comments>http://xunwap.net/archives/sharing-ideas/site-maintance/%e7%b4%a7%e6%80%a5php%e7%89%88%e6%9c%ac%e5%8d%87%e7%ba%a7.html#comments</comments>
		<pubDate>Fri, 07 Jan 2011 12:46:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站运营]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=750</guid>
		<description><![CDATA[紧急PHP版本升级]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">最近，PHP脚本语言中新发现的一个BUG: 当PHP执行转换超大浮点数的代码时，可能导致服务器宕机，这对基于PHP的网站的安全产生了一定的影响。这一错误只影响版本号为5.2和5.3的 PHP 发行版，并且只在使用 X87 指令集的32位英特尔CPU上出现。</div>
<div id="_mcePaste">在命令行执行如下代码即可测试您的系统当前版本的PHP是否受此BUG影响:</div>
<pre style="color: #000000; background-color: #eeeeee; font-size: 10pt; font-family: 'Courier New';"><span style="color: #ff0080; font-weight: bold;">&lt;</span>?php
<span style="color: #ff8000;">/*</span>
<span style="color: #ff8000;">  +----------------------------------------------------------------------+</span>
<span style="color: #ff8000;">  | PHP Version 5                                                        |</span>
<span style="color: #ff8000;">  +----------------------------------------------------------------------+</span>
<span style="color: #ff8000;">  | Copyright (c) 2011 The PHP Group                                     |</span>
<span style="color: #ff8000;">  +----------------------------------------------------------------------+</span>
<span style="color: #ff8000;">  | This source file is subject to version 3.01 of the PHP license,      |</span>
<span style="color: #ff8000;">  | that is bundled with this package in the file LICENSE, and is        |</span>
<span style="color: #ff8000;">  | available through the world-wide-web at the following url:           |</span>
<span style="color: #ff8000;">  | http://www.php.net/license/3_01.txt                                  |</span>
<span style="color: #ff8000;">  | If you did not receive a copy of the PHP license and are unable to   |</span>
<span style="color: #ff8000;">  | obtain it through the world-wide-web, please send a note to          |</span>
<span style="color: #ff8000;">  | license@php.net so we can mail you a copy immediately.               |</span>
<span style="color: #ff8000;">  +----------------------------------------------------------------------+</span>
<span style="color: #ff8000;">  | Author: Johannes Schlueter &lt;johannes@php.net&gt;                        |</span>
<span style="color: #ff8000;">  +----------------------------------------------------------------------+</span>
<span style="color: #ff8000;">*/</span>

<span style="color: #bb7977; font-weight: bold;">if</span> <span style="color: #ff0080; font-weight: bold;">(</span>PHP_SAPI <span style="color: #ff0080; font-weight: bold;">!=</span> <span style="color: #a68500;">'cli'</span><span style="color: #ff0080; font-weight: bold;">) {</span>
    <span style="color: #bb7977; font-weight: bold;">die</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">"Please run this test from CLI!</span><span style="color: #ff00ff; font-weight: bold;">\n</span><span style="color: #a68500;">"</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #ff0080; font-weight: bold;">}</span>

<span style="color: #004466;">ini_set</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'display_errors'</span><span style="color: #ff0080; font-weight: bold;">,</span> <span style="color: #800080; font-weight: bold;">1</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #004466;">ini_set</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'output_buffering'</span><span style="color: #ff0080; font-weight: bold;">,</span> <span style="color: #800080; font-weight: bold;">0</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #004466;">error_reporting</span><span style="color: #ff0080; font-weight: bold;">(-</span><span style="color: #800080; font-weight: bold;">1</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #bb7977; font-weight: bold;">if</span> <span style="color: #ff0080; font-weight: bold;">(!</span><span style="color: #004466;">ini_get</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #a68500;">'safe_mode'</span><span style="color: #ff0080; font-weight: bold;">)) {</span>
    <span style="color: #004466;">set_time_limit</span><span style="color: #ff0080; font-weight: bold;">(</span><span style="color: #800080; font-weight: bold;">1</span><span style="color: #ff0080; font-weight: bold;">);</span>
<span style="color: #ff0080; font-weight: bold;">}</span>

<span style="color: #bb7977; font-weight: bold;">echo</span> <span style="color: #a68500;">"Testing float behaviour. If this script hangs or terminates with an error "</span><span style="color: #ff0080; font-weight: bold;">.</span>
     <span style="color: #a68500;">"message due to maximum execution time limit being reached, you should "</span><span style="color: #ff0080; font-weight: bold;">.</span>
     <span style="color: #a68500;">"update your PHP installation asap!</span><span style="color: #ff00ff; font-weight: bold;">\n</span><span style="color: #a68500;">"</span><span style="color: #ff0080; font-weight: bold;">;</span>
<span style="color: #bb7977; font-weight: bold;">echo</span> <span style="color: #a68500;">"For more information refer to &lt;http://bugs.php.net/53632&gt;.</span><span style="color: #ff00ff; font-weight: bold;">\n</span><span style="color: #a68500;">"</span><span style="color: #ff0080; font-weight: bold;">;</span>
<span style="color: #0080c0;">$d</span> <span style="color: #ff0080; font-weight: bold;">= (</span><span style="color: #8080c0; font-weight: bold;">double</span><span style="color: #ff0080; font-weight: bold;">)</span><span style="color: #a68500;">"2.2250738585072011e-308"</span><span style="color: #ff0080; font-weight: bold;">;</span>
<span style="color: #bb7977; font-weight: bold;">echo</span> <span style="color: #a68500;">"Your system seems to be safe.</span><span style="color: #ff00ff; font-weight: bold;">\n</span><span style="color: #a68500;">"</span><span style="color: #ff0080; font-weight: bold;">;</span>
?<span style="color: #ff0080; font-weight: bold;">&gt;</span></pre>
<div id="_mcePaste">如果上述代码证实您的系统中当前的PHP版本受此BUG影响，强烈建议升级PHP到BUG修复版本PHP-5.3.5。</div>
<p style="padding-left: 390px;"><strong><a title="紧急PHP版本升级" href="http://xunwap.net/archives/sharing-ideas/site-maintance/紧急php版本升级.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/sharing-ideas/site-maintance/%e7%b4%a7%e6%80%a5php%e7%89%88%e6%9c%ac%e5%8d%87%e7%ba%a7.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008 安装 WTL</title>
		<link>http://xunwap.net/archives/gui-app-development/wtl-development/visual-studio-2008-%e5%ae%89%e8%a3%85-wtl.html</link>
		<comments>http://xunwap.net/archives/gui-app-development/wtl-development/visual-studio-2008-%e5%ae%89%e8%a3%85-wtl.html#comments</comments>
		<pubDate>Thu, 06 Jan 2011 13:35:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WTL开发]]></category>
		<category><![CDATA[WTL安装]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=747</guid>
		<description><![CDATA[Visual Studio 2008 安装 WTL]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">WTL命名为: Windows Template Library。当前的最新版本为8.1。</div>
<div id="_mcePaste">WTL是一个类似于MFC的windows下的界面库，基于模板的形式构造，功能齐全但不如MFC功能多样，主要用于GUI界面开发，不包含Socket,File,Process&#8230;等相关的Windows API的封闭。但WTL整体架构简洁，易于使用，所开发的应用程序在不同的机器上运行时也更通畅(不需要类似于MFC开发的应用程序需要在使用的机器上安装对应的动态连接库)。整个WTL库使用与Boost库相似的方式来发布:即所有的库代码都是以头文件的形式来提供，使用WTL时直接在包含文件的路径中添加WTL的include路径即可使用，简洁方便。</div>
<div id="_mcePaste">下面介绍WTL在Visual Studio 2008下的安装方法:</div>
<div id="_mcePaste"><strong>首先</strong>，将WTL的安装包解压到指定路径，如: D:\Development。</div>
<div id="_mcePaste"><strong>然后</strong>，执行&#8221;AppWiz\setup90.js&#8221;文件，即可将WTL集成到Visual Studio 2008中。</div>
<div id="_mcePaste"><strong>最后</strong>，在Vistual Studio 2008中 菜单栏中: &#8220;Tools-&gt;Options-&gt;Projects and Solutions-&gt;VC++ Directories&#8221;，将WTL的include目录添加到其中即可。</div>
<div id="_mcePaste">如果需要在Visual Studio 2003/Visual Studio 2005中安装WTL，那么在第二步中执行&#8221;AppWiz\setup70.js&#8221;/&#8221;AppWiz\setup80.js&#8221; 即可。</div>
<p style="padding-left: 390px;"><strong><a title="Visual Studio 2008 安装 WTL" href="http://xunwap.net/archives/gui-app-development/wtl-development/visual-studio-2008-安装-wtl.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/gui-app-development/wtl-development/visual-studio-2008-%e5%ae%89%e8%a3%85-wtl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Linux Programming Interface 下载</title>
		<link>http://xunwap.net/archives/server-development/linux-server-development/the-linux-programming-interface-%e4%b8%8b%e8%bd%bd.html</link>
		<comments>http://xunwap.net/archives/server-development/linux-server-development/the-linux-programming-interface-%e4%b8%8b%e8%bd%bd.html#comments</comments>
		<pubDate>Thu, 06 Jan 2011 13:12:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[The Linux Programming Interface]]></category>

		<guid isPermaLink="false">http://xunwap.net/?p=745</guid>
		<description><![CDATA[The Linux Programming Interface 下载]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">在Linux/Unix下开发，是一定要读一下大名鼎鼎的《Advanced Programming in the UNIX Environment》，对于Linux/Unix下开发的方方面面这本书都有介绍。堪称Linux/Unix下开发的经典入门书籍。</div>
<div id="_mcePaste">今天，要向大家介绍另外一本最近面世的Linux/Unix环境下的编程书籍《The Linux Programming Interface》，从该书的总体内容和介绍来看，这本书将是《Advanced Programming in the UNIX Environment》之后又一本经典的入门书籍和参考手册。这本书主要包含如下内容:</div>
<blockquote><p>Preface<br />
1   History and Standards<br />
2   Fundamental Concepts<br />
3   System Programming Concepts<br />
4   File I/O: The Universal I/O Model<br />
5   File I/O: Further Details<br />
6   Processes<br />
7   Memory Allocation<br />
8   Users and Groups<br />
9   Process Credentials<br />
10   Times and Dates<br />
11   System Limits and Options<br />
12   Retrieving System and Process Information<br />
13   File I/O Buffering<br />
14   File Systems<br />
15   File Attributes<br />
16   Extended Attributes<br />
17   Access Control Lists<br />
18   Directories and Links<br />
19   Monitoring File Events with inotify<br />
20   Signals: Fundamental Concepts<br />
21   Signals: Signal Handlers<br />
22   Signals: Advanced Features<br />
23   Timers and Sleeping<br />
24   Process Creation<br />
25   Process Termination<br />
26   Monitoring Child Processes<br />
27   Program Execution<br />
28   Process Creation and Program Execution in More Detail<br />
29   Threads: Introduction<br />
30   Threads: Thread Synchronization<br />
31   Threads: Thread Safety and Per-thread Storage<br />
32   Threads: Thread Cancellation<br />
33   Threads: Further Details<br />
34   Process Groups, Sessions, and Job Control<br />
35   Process Priorities and Scheduling<br />
36   Process Resources<br />
37   Daemons<br />
38   Writing Secure Privileged Programs<br />
39   Capabilities<br />
40   Login Accounting<br />
41   Fundamentals of Shared Libraries<br />
42   Advanced Features of Shared Libraries<br />
43   Interprocess Communication Overview<br />
44   Pipes and FIFOs<br />
45   Introduction to System V IPC<br />
46   System V Message Queues<br />
47   System V Semaphores<br />
48   System V Shared Memory<br />
49   Memory Mappings<br />
50   Virtual Memory Operations<br />
51   Introduction to POSIX IPC<br />
52   POSIX Message Queues<br />
53   POSIX Semaphores<br />
54   POSIX Shared Memory<br />
55   File Locking<br />
56   Sockets: Introduction<br />
57   Sockets: Unix Domain<br />
58   Sockets: Fundamentals of TCP/IP Networks<br />
59   Sockets: Internet Domains<br />
60   Sockets: Server Design<br />
61   Sockets: Advanced Topics<br />
62   Terminals<br />
63   Alternative I/O Models<br />
64   Pseudoterminals<br />
A   Tracing System Calls<br />
B   Parsing Command-Line Options<br />
C   Casting the NULL Pointer<br />
D   Kernel Configuration<br />
E   Further Sources of Information<br />
F   Solutions to Selected Exercises<br />
Bibliography<br />
Index</p></blockquote>
<p>对于Unix/Linux下的开发，《The Linux Programming Interface》可谓是面面俱到，实在是必备的一本书籍。当前《The Linux Programming Interface》在中国并没有引进，网络上也没有对完整的电子版可供下载，作者只是放出了本书的部分章节的PDF，不过从本书作者的个人网站上得到如下消息:</p>
<blockquote><p>A number of people have asked about an ebook version of TLPI. There will be an ebook version.<br />
Currently, the publisher plans to release the ebook in January 2011. In the meantime,<br />
if you purchase the paper copy direct from No Starch Press,<br />
they will provide you with a copy of the ebook when it becomes available.<br />
(When the ebook becomes available, you will be able to purchase it independently of the print version.)</p></blockquote>
<p>看来在2011年1月份，我们就可以下载到本书的完整电子版了，期待中 <img src='http://xunwap.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="padding-left: 390px;"><strong><a title="The Linux Programming Interface 下载" href="http://xunwap.net/archives/server-development/linux-server-development/the-linux-prog…g-interface-下载.html" target="_blank">本站原创文章，转载请注明出处</a>。 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xunwap.net/archives/server-development/linux-server-development/the-linux-programming-interface-%e4%b8%8b%e8%bd%bd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

