洪恩在线成语词典小偷程序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 就可以了。

相关文章

  • Search File Contents PHP 搜索目录文本内容的代码

    Search File Contents PHP 搜索目录文本内容的代码

    这个类可以用来搜索在给定的文本目录中的文件。它可以给定目录遍历递归查找某些文件扩展名的文件。
    2010-02-02
  • PHP导出MySQL数据到Excel文件(fputcsv)

    PHP导出MySQL数据到Excel文件(fputcsv)

    经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。
    2011-07-07
  • PHP封装PDO实现操作MySql数据库

    PHP封装PDO实现操作MySql数据库

    数据库操作类可以封装数据库连接和操作,使代码更易于维护和扩展,这篇文章主要为大家详细介绍了PHP如何封装操作类PDO从而实现操作MySql数据库的功能,需要的可以了解下
    2023-10-10
  • 解析php中如何调用用户自定义函数

    解析php中如何调用用户自定义函数

    以下是对php中调用用户自定义函数的方法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • php遍历所有文件及文件夹的方法深入解析

    php遍历所有文件及文件夹的方法深入解析

    本篇文章是对php遍历所有文件及文件夹的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php cookies中删除的一般赋值方法

    php cookies中删除的一般赋值方法

    php cookies中删除的一般赋值方法 cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。
    2011-05-05
  • 利用PHP实现开心消消乐的算法示例

    利用PHP实现开心消消乐的算法示例

    开心消消乐应该对大家来说都不陌生吧,下面这篇文章主要给大家介绍了关于如何利用PHP实现开心消消乐算法的相关资料,文中将需求和示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • PHP动态编译出现Cannot find autoconf的解决方法

    PHP动态编译出现Cannot find autoconf的解决方法

    这篇文章主要介绍了PHP动态编译出现Cannot find autoconf的解决方法,是PHP程序设计中经常会遇到的问题,需要的朋友可以参考下
    2014-11-11
  • php使用function_exists判断函数可用的方法

    php使用function_exists判断函数可用的方法

    这篇文章主要介绍了php使用function_exists判断函数可用的方法,通过一个图像处理函数中使用function_exists函数判断并输出来实现函数存在判断与流程灵活控制的功能,具有很好的借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP curl 抓取AJAX异步内容示例

    PHP curl 抓取AJAX异步内容示例

    抓ajax异步内容的页面和抓普通的页面区别不大。ajax只不过是做了一次异步的http请求,下面的示例,大家可以参考下
    2014-09-09

最新评论