洪恩在线成语词典小偷程序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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
php重定向的三种方法分享
Feb 22 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
PHP的伪随机数与真随机数详解
May 27 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
PHP基于array_unique实现二维数组去重
Jul 14 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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
默默简单的写了一个模板引擎
2007/01/02 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Python的gevent框架的入门教程
2015/04/29 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
Python paramiko模块的使用示例
2018/04/11 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
浅谈django的render函数的参数问题
2018/10/16 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
ipython和python区别详解
2019/06/26 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
UNIX文件系统分类
2014/11/11 面试题
大学生学习自我评价
2014/01/13 职场文书
农民致富事迹材料
2014/01/23 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
论文指导教师评语
2014/04/28 职场文书
交通志愿者活动总结
2014/06/27 职场文书