洪恩在线成语词典小偷程序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 30 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
如何判断php数组的维度
Jun 10 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
解析MySql与Java的时间类型
Jun 22 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
php微信开发之音乐回复功能
Jun 14 PHP
Laravel框架查询构造器简单示例
May 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代码
2007/03/03 PHP
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
json跟xml的对比分析
2008/06/10 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
python 实现return返回多个值
2019/11/19 Python
Python列表解析操作实例总结
2020/02/26 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
Django url 路由匹配过程详解
2021/01/22 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
美发店5.1活动方案
2014/01/24 职场文书
公司证明怎么写
2014/09/22 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技