关于这个词语接龙接口,很早以前就已经构思好了,一直没有时间实现,今天下午搞了出来,并写了个Demo。主要分为两个接口,一个用来返回接好的词语,另一个用来验证用户输入的是不是词语。
接口使用说明
1.词语接龙接口
词语接龙接口地址为:https://aoaoao.me/api/do.php,使用时请以get方式将词语首字传递给接口。
请求格式:https://aoaoao.me/api/do.php?w=词语首字
比如想要获取首字为“一”的成语:
https://aoaoao.me/api/do.php?w=一
接口会反馈类似于下面这样的数据:
{"code":"1","result":"一板一眼","message":"找到100条词语"}其中各项参数说明如下表:
参数名 | 参数说明 | 详情 |
---|---|---|
code | 状态码 | 返回查询状态,1代表成功查到,0代表查找不到,2代表输入的不是一个单字 |
result | 结果 | 成功查到时会随机在查到的词语中返回一个结果 |
message | 提示信息 |
{"code":"1","message":"验证通过"}其中各项参数说明如下表: message提示信息
参数名 | 参数说明 | 详情 |
---|---|---|
code | 状态码 | 返回查询状态,1代表成功查到,0代表查找不到,2代表输入的不是一个单字 |
message | 提示信息 |
<?php /* PHP词语接龙接口 2015-11-18 数据来自wx6.org 树洞分享 https://aoaoao.me */ //头部信息 header("Content-Type: application/json; charset=utf-8"); $word=""; $word=str_replace(" ","",$_GET['w']); //判断输入的字是否合法,如果不能正常统计请把下边的3换成2 if($word=="" || mb_strlen($word) != 3){ $code="2"; $message="魂淡,你确定你输入的是个字?"; $resulr=""; }else{ $word_re=str_replace("%","",urlencode($word)); //获取词语数据 $text = file_get_contents("http://chengyu.wx6.org/start_".$word_re.".aspx"); //过滤无关数据 $intH1end = strpos($text, '<!-- Search BEGIN -->'); $text = substr($text,0,$intH1end); //正则匹配 preg_match_all('/<a\shref=\"http:\/\/.*\/show.*\">(.+)?<\/a>/isU',$text,$match); $count=count($match[1]); if($count==0){ $code="0"; $message="未找到匹配词语"; }else{ $code="1"; $message="找到".$count."条词语"; } //随机选取一个成语 $rand_num=rand(0,$count-1); $result=$match[1][$rand_num]; } //防止乱码 $arr["code"] = urlencode($code); $arr['result'] = urlencode($result); $arr['message'] = urlencode($message); //返回数据 echo urldecode(json_encode($arr)); ?>随便测试了一下,性能还不错,大部分词都能接上来。 **2.词语检查接口** 说原理之前先看我对接口进行测试的表格:
测试词 | 测试结果 | 测试词 | 测试结果 |
---|---|---|---|
拔苗助长 | **通过** | 我去你的 | **不通过 ** |
长发及腰 | **通过** | 编辑文章 | **不通过 ** |
阿里云 | **通过** | 马云 | **通过** |
螳臂当车 | **通过** | 我去年买了个表 | **通过 ** |
<?php /* PHP词语接龙接口 2015-11-18 数据来自wx6.org 树洞分享 https://aoaoao.me */ //头部信息 header("Content-Type: application/json; charset=utf-8"); $w=""; $w=$_GET['w']; //将文字进行URL编码 $w=urlencode($w); //从百度百科查询词语 $text = file_get_contents("http://baike.baidu.com/search/word?word=".$w); //判断是否找到词语 $code=strstr($text, "百度百科尚未收录词条"); if(!$code){ $code1="1"; $message1="验证通过"; }else{ $code1="0"; $message1="魂淡,你输入的是个词语吗?"; } $arr1["code"]=urlencode($code1); $arr1["message"]=urlencode($message1); echo urldecode(json_encode($arr1)); ?>
词语接龙演示
于是乎用上面的两个接口做了一个demo.用户输词后先验证,验证后再查词.
演示地址:https://aoaoao.me/api/demo/play.html
截图:
[
[
[
[
[
以后有时间了会改进一下,调用图灵机器人的接口
源代码及演示打包下载:http://pan.baidu.com/s/1pJs12XH