使用PHP玩耍一言API

拿到了一言第三方API源码后博主也是开始研究起了这个代码(感谢 时空 提供代码)

各种百度/改造后,玩耍成功√

当然API的源码不会是这个版本

Q:幻梦对这个源码改造成什么样了呢?
A:添加各种注释,并添加了各种GET方式的if,判断value参数为什么的时候输出什么。

代码如下:(希望大家转载的时候可以保留出处)

<?php  
//Code by 幻梦 
//不是很会PHP,所以代码很渣,只会照葫芦画瓢,你得知道这个代码我也是改的
//所以不喜勿喷
//博客://ihuanmeng.com/
//一言API官网:http://hitokoto.us/api.html

$url = 'http://api.hitokoto.us/rand'; //定义CURL要抓取的URL
$ch = curl_init(); //初始化CURL
curl_setopt($ch, CURLOPT_URL, $url);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);  
//curl_setopt函数是php中一个重要的函数,它可以模仿用户的一些行为,如模仿用户登录,注册等等一些用户可操作的行为哦。curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。——摘自PHP100

$json = curl_exec($ch); //JSON定值
curl_close($ch);  
$array = json_decode($json, true); // array参数定值
$hitokoto = $array[hitokoto]; //取hitokoto值
$id = $array[id]; //取这一句话的id值
$cat = $array[cat]; //取分类代码
$author = $array[author]; //取投稿人
$source = $array[source]; //取出处
$like = $array[like]; //取喜欢的人数
$date = $array[date]; //取投稿日期

if ($_GET['value'] == 'id') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $id ;
 die;
} //如果value参数为id则输出变量名为id的值
if ($_GET['value'] == 'cat') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $cat ;
 die;
} //如果value参数为cat则输出变量名为cat的值
//既然cat是分类代码,这里应该给大家科普下一言的分类代码所代表的意思:
//a - Anime - 动画
//b - Comic - 漫画
//c - Game - 游戏
//d - Novel - 小说
//e - 原创
//f - 来自网络
//g - 其他
if ($_GET['value'] == 'hitokoto') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $hitokoto ;
 die;
} //如果value参数为hitokoto则输出变量名为hitokoto的值
if ($_GET['value'] == 'author') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $author ;
 die;
} //如果value参数为author则输出变量名为author的值
if ($_GET['value'] == 'source') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $source ;
 die;
} //如果value参数为source则输出变量名为source的值
if ($_GET['value'] == 'like') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $like ;
 die;
} //如果value参数为like则输出变量名为like的值
if ($_GET['value'] == 'date') {  
header('Content-Type: text/html; charset=UTF-8');//定义网页编码,防止输出中文的时候乱码  
 echo $date ;
 die;
} //如果value参数为date则输出变量名为date的值
else {  
 header('Content-Type:text/html;charset=utf-8');
 echo '{document.write("' . $hitokoto . '");}';
 die;
}//如果不在URL中确定输出值,则默认输出JavaScript语法的hitokoto值

?>