洪恩在线成语词典小偷程序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来实现网络服务
Sep 15 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
php中this关键字用法分析
Dec 07 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 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基础知识:类与对象(5) static
2006/12/13 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript 函数的执行过程
2016/05/09 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
js实现五星评价功能
2017/03/08 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
房屋出租委托书格式
2014/09/23 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
小学家长通知书评语
2014/12/31 职场文书
金榜题名主持词
2015/07/02 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
九年级历史教学反思
2016/02/19 职场文书
八年级作文之感恩
2019/11/22 职场文书