洪恩在线成语词典小偷程序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 相关文章推荐
从网上搜到的phpwind 0day的代码
Dec 07 PHP
php 文件上传系统手记
Oct 26 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
php简单日历函数
Oct 28 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 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
文件上传的实现
2006/10/09 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
php实现源代码加密的方法
2015/07/11 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
js图片预加载示例
2014/04/30 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
Python调用命令行进度条的方法
2015/05/05 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
客服服务心得体会
2013/12/30 职场文书
秋季运动会稿件
2014/01/30 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
本溪关门山导游词
2015/02/09 职场文书
孔子观后感
2015/06/08 职场文书
2015年暑假工作总结
2015/07/13 职场文书
医院感染管理制度
2015/08/05 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis