洪恩在线成语词典小偷程序php版

 更新时间:2012年04月20日 17:20:51   作者:  
去年在学习用php做小偷程序时的一个练习之作,希望能给有同样需求的朋友带来些帮助,程序主要流程是获取洪恩在线的成语词典查询结果并在当前页面显示出来(俗称小偷程序),使用语言为php
主要函数是file_get_contents,主程序分两段,跟我一起看过来吧(凡人博客原创代码,转载请注明)。
复制代码 代码如下:

function escape($str){
preg_match_all('/[\x80-\xff].|[\x01-\x7f]+/',$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v){
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = '%u'.bin2hex(iconv('GB2312','UCS-2',$v));
}
return join('',$ar);
}

上面的函数主要是用php实现JavaScript的escape编码过程,因为洪恩的查询接口需要传递过去的值是经过escape编码后的成语条目。
复制代码 代码如下:

function chacy($chengyu){
$chengyu=escape($chengyu);
$text=@file_get_contents('http://study.hongen.com/dict/ndsearchchengyu.aspx?type=exact&word='.$chengyu);
$pos1=strpos($text,'<table class="root">');
$pos2=strrpos($text,'<table class="english">');
$text=substr($text,$pos1,$pos2-$pos1);
//把字符集由原来的UTF-8转换到GB2312,注意在GB2312之后加上了//IGNORE,强制遇到特殊字符也继续转换,因为在遇到汉字“一”的时候iconv函数会终止转换
$text=iconv('UTF-8','GB2312//IGNORE',$text);
if (strpos($text,'出处')){
return $text;
}
}

上面是自己定义的成语查询函数,首先escape编码要查询的成语条目,然后使用file_get_contents函数获取“http://study.hongen.com/dict/ndsearchchengyu.aspx?type=exact&word=”页面查询的内容,使用substr去除前后一些不需要的多余代码,中间就是成语条目的解释部分(包括拼音、解释、出处、例句),最后记得要转码,洪恩返回的结果是UTF-8编码,一般情况下我们需要转换为GB2312编码,上面我写了一个有关iconv函数转换编码有时会出现bug的注释文本,需要加上一个//IGNORE参数。最后判断结果中是否存在“出处”二字,有的话说明整个函数运行成功,可以把获取到的内容return给页面了。

程序主体实现完成,只需在相应位置调用查询函数:chacy 就可以了。

相关文章

  • php生成zip压缩文件的方法详解

    php生成zip压缩文件的方法详解

    本篇文章是对php生成zip压缩文件的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 简单的pgsql pdo php操作类实现代码

    简单的pgsql pdo php操作类实现代码

    这篇文章主要介绍了简单的pgsql pdo php操作类,需要的朋友可以参考下
    2016-08-08
  • php下将XML转换为数组

    php下将XML转换为数组

    PHP XML To Array,将XML转换为数组,需要的朋友可以参考下。
    2010-01-01
  • php有效防止图片盗用、盗链的两种方法

    php有效防止图片盗用、盗链的两种方法

    这篇文章主要为大家详细介绍了php有效防止图片盗用、盗链的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )

    真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )

    真正根据utf8编码的规律来进行截取的字符的函数,utf8版sub_str 支持1~6个字节的字符的截取,而非只针对中文,比网上的全
    2012-10-10
  • 我的php学习笔记(毕业设计)

    我的php学习笔记(毕业设计)

    不单是为了做毕业设计,其实更多的是想学会它,能弄弄网站什么的,只要能做好,我觉得就是可以去学,可以去尝试的
    2012-02-02
  • php生成缩略图质量较差解决方法代码示例

    php生成缩略图质量较差解决方法代码示例

    这篇文章主要介绍了php生成缩略图质量较差解决方法代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • PHP简单判断手机设备的方法

    PHP简单判断手机设备的方法

    这篇文章主要介绍了PHP简单判断手机设备的方法,涉及php基于服务器预定义变量进行判断操作的相关技巧,需要的朋友可以参考下
    2016-08-08
  • 有关JSON以及JSON在PHP中的应用

    有关JSON以及JSON在PHP中的应用

    简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。
    2010-04-04
  • PHP常用数组函数介绍

    PHP常用数组函数介绍

    编程怎么能少的了数组呢,以下是学习PHP时常用的数组处理函数。在编程中要遵循一个原则就是DRY(Don`t Repeat Yourself)原则,PHP中有大量的函数,都记住这些函数不太现实,但常用的函数还是要熟练使用的,大部分的函数的使用方法可以通过查询PHP的手册来使用。
    2014-07-07

最新评论