洪恩在线成语词典小偷程序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的错误信息
Oct 09 PHP
php 无法载入mysql扩展
Mar 12 PHP
php 生成文字png图片的代码
Apr 17 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
php url路由入门实例
Apr 23 PHP
php使用GeoIP库实例
Jun 27 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 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生成压缩文件实例
2015/02/07 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
Python模块相关知识点小结
2020/03/09 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
土木工程毕业生推荐信
2013/10/28 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
卖车协议书
2014/04/21 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
三八妇女节寄语
2015/02/27 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
员工手册董事长致辞
2015/07/29 职场文书
大学生活感想
2015/08/10 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
python 调用js的四种方式
2021/04/11 Python