<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post/5472/</link>
<title><![CDATA[PHP对论坛帖子的过滤之海量关键字的过滤算法]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Wed, 08 Aug 2012 01:40:51 +0000</pubDate> 
<guid>http://jackxiang.com/post/5472/</guid> 
<description>
<![CDATA[ 
	初略：<br/>array（将=&gt;array（军，来=&gt;array(要=&gt;array(升=&gt;array(级)))），美=&gt;array(人=&gt;array(上，痣)，女=&gt;array(陪，聊))）<br/>这种方式可能会高一点，但不利于海量，下面有一个思路，可以参考下。<br/><br/>关键词过滤的程序：<br/>&nbsp;&nbsp; 因为关键词比较多，用preg_replace效率极差，str_replace又不能有太多的关键词，strtr虽然效率比str_replace快四倍，但用于大数组效率却和str_replace比较接近，于是自己用PHP写了一个算法，觉得效率非常很不错，遂于大家分享，待程序完善后便贴出来，先占个位置<br/><br/>主要是思路，<br/>对文章按字节进行遍历，然后对每个字节开始的位置进行递归匹配关键词（当然不是直接去匹配，这里做了一个技巧，是把关键词按字节的ACCSII码做为KEY分成N维数组），这样只遍历文章一次便定位出所有关键字的位置，递归部分不会减慢程序的速度，一般第一次就会被跳出，这样程序不会随关键字的数量而变慢，理论上几十万关键字和几千个个关键字速度差不多 在本机测试了下4万个关键词，替换一篇文章竟然才用0.01秒多，而str_replace 已经到了 0.4秒了，并且关键词数量越多 str_replace&nbsp;&nbsp;时间越长。<br/><br/>DownLoad：<br/><a href="attachment.php?fid=313">点击这里下载文件</a><br/><br/>keyword.class.php 是类<br/>example.php 是例子 和 与 str_replace的对比<br/>badword.src.php 是关键词的文件<br/><br/>也可以参看：http://hi.baidu.com/actfish/item/7fc13be2431a9018585dd837<br/><br/>关于关键字过滤程序中发现的多层循环的改良技巧：<br/>&nbsp;&nbsp; for循环的嵌套是很悲观的一件事情，多层嵌套时不出错的概率基本上是0（除非你的嵌套非常简单），当你的程序里充满了return，break时，是否头疼了呢？这时候我们常常忽略了C#语言的一个重要关键字“GOTO”。大胆尝试一下吧，虽然平时不鼓励使用GOTO来进行编程的，但有时候，使用它会大大提高你的效率，多层复杂循环就是“有时候”的一个时候。
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/5472/#blogcomment63791</link>
<title><![CDATA[[评论] PHP对论坛帖子的过滤之海量关键字的过滤算法]]></title> 
<author>pkdog &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 10 Aug 2012 11:33:50 +0000</pubDate> 
<guid>http://jackxiang.com/post/5472/#blogcomment63791</guid> 
<description>
<![CDATA[ 
	顶啊
]]>
</description>
</item>
</channel>
</rss>