快速业务通道

PHP匹配变音使404页面更加智能化

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-14
。以下代码生成的建议将通过以下三个主要测试创建:根据目录结构匹配、使用变音组合匹配,以及当其他方法失败时使用 “包含” 匹配。这三种测试的设计目的是处理大多数 404 错误。MetaphoneSuggest CGI Perl 脚本的开始部分如下所示。

清单 4. MetaphoneSuggest CGI 第 1 部分
               

代码首先引入了一些常用库并声明了一些变量,然后将加载 404 报告文本和通过 buildMetaphoneList.pl 程序创建的变音。这时,我们可以开始编写主要的程序逻辑了,如下所示。

清单 5. 主要程序逻辑
               

首先,对匹配测试各部分的输出进行排序,然后将其添加到总建议链接列表。对链接列表进行排序和惟一化(unique-ifying)之后,将建议链接直接打印输出。

三个排序命令将结果保存在同一个数组中,目的是创建一个有序的建议列表。发生 404 错误时,目录树中(至少第一级目录)极有可能会出现目录分隔符(用于表示 Web 页面)。比如说,以 bloggs/nathenherringtoon.html 页面请求为例。上述代码中所调用的 directorySplitTest 方法将创建一个排序的页面列表,BLKS 和子目录 N0NHRNKTN 的变音匹配都将包含在该列表中。这一策略可用于区分根目录中的文件(如 blogs.html 和 nathanharrington.html)和完整路径名匹配的页面(如 blogs/nathanharrington.html)。下面的清单显示了 directorySplitTest 子例程的内容。

清单 6. directorySplitTest subroutine
               

组合测试位于 directorySplitTest 之后,用于检查变音混和在一起时的匹配情况 — 忽略任何目录结构。该测试用于纠正 404 类错误,即文件名中含有空格、斜杠、反斜杠、冒号和其他一些无发音的字符。比如说,如果针对 blogs_nathanherrington.html 发出一个 404 请求,那么 directorySplitTest 将返回零结果,但是 combinedTest 将发现该 404 产生的变音组合在一起是 blogs/NathanHarrington.html 页面的准确匹配。同样,这些建议的优先级低于目录匹配,因此这些分类结果将在 directorySplitTest 之后存入 suggestLinks 数组。以下清单显示了 combinedTest 子例程。

清单 7. combinedTest 子例程
   

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号