洪恩在线成语词典小偷程序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连接Oracle数据库
Oct 09 PHP
为查询结果建立向后/向前按钮
Oct 09 PHP
PHP集成FCK的函数代码
Sep 27 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
php 获取本地IP代码
Jun 23 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
一个不易被发现的PHP后门代码解析
Jul 05 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
PHP简单获取及判断提交来源的方法
Apr 22 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
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
新党章心得体会
2014/09/04 职场文书
2015大学生求职信范文
2015/03/20 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
实现GO语言对数组切片去重
2022/04/20 Golang