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


Posted in PHP onApril 20, 2012

主要函数是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 相关文章推荐
php分页函数
Jul 08 PHP
php分页示例代码
Mar 19 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
php给每个段落添加空格的方法
Mar 20 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP数据库操作四:mongodb用法分析
Aug 16 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 PHP
php 文件上传实例代码
Apr 19 #PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 #PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 #PHP
php递归创建和删除文件夹的代码小结
Apr 13 #PHP
redis 队列操作的例子(php)
Apr 12 #PHP
PHP得到某段时间区间的时间戳 php定时任务
Apr 12 #PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 #PHP
You might like
openflashchart 2.0 简单案例php版
2012/05/21 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Django中多种重定向方法使用详解
2019/07/17 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
季度思想汇报
2014/01/01 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
司机工作自我鉴定
2014/09/19 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸
MySQL池化框架学习接池自定义
2022/07/23 MySQL