洪恩在线成语词典小偷程序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 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
PHP 程序员也要学会使用“异常”
Jun 16 PHP
PHP 字符串分割和比较
Oct 06 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 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 jquery 多文件上传简单实例
2013/12/23 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
仓库理货员岗位职责
2013/12/18 职场文书
关于环保的建议书
2014/05/12 职场文书
校园标语大全
2014/06/19 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
大客户经理岗位职责
2015/04/09 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
使用Java去实现超市会员管理系统
2022/03/18 Java/Android