洪恩在线成语词典小偷程序php版
2015-01-24信息快讯网
去年在学习用php做小偷程序时的一个练习之作,希望能给有同样需求的朋友带来些帮助,程序主要流程是获取洪恩在线的成语词典查询结果并在当前页面显示出来(俗称小偷程序),使用语言为php
主要函数是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中session的实现原理以及大网站应用应注意的问题
jQuery+php实现ajax文件即时上传的详解
php之CodeIgniter学习笔记
php unset全局变量运用问题的深入解析
Linux Apache PHP Oracle 安装配置(具体操作步骤)
如何用php获取程序执行的时间
编写安全 PHP应用程序的七个习惯深入分析
编写php应用程序实现摘要式身份验证的方法详解
作为PHP程序员应该了解MongoDB的五件事
PHP程序级守护进程的实现与优化的使用概述
php入门之连接mysql数据库的一个类
php 文件上传实例代码
php开发留言板的CRUD(增,删,改,查)操作
php开发分页实现代码第1/3页
php和mysql中uft-8中文编码乱码的几种解决办法
php递归创建和删除文件夹的代码小结
优化PHP程序的方法小结
国外PHP程序员的13个好习惯小结
php后台多用户权限组思路与实现程序代码分享
PHP测试程序运行时间的类
写出高质量的PHP程序
php下通过IP获取地理位置的代码(小偷程序)
多么希望“千股涨停”也能成为一个成语!