源码
<?php
//允许跨域
header("Access-Control-Allow-Origin:*");
$month=date( 'm',time() );
$day=date( 'd',time() );
//当前年月日
$today = date('Y年m月d日');
//获取接口数据
$url="https://baike.baidu.com/cms/home/eventsOnHistory/".$month.'.json';
$data = httpGet($url);
$json = json_decode($data,true);
//统计当日总数
$countnum = count($json[$month][$month.$day])-1;
//获取输出数量(可以get调整)
$num = $_GET['num'] ? $_GET['num'] : $countnum;
$arr = array('code'=>'200','day'=>$today);
for ($x=0; $x<=$num; $x++) {
$arr['content'][$x].= match_chinese(strip_tags($json[$month][$month.$day][$x]['title']));
}
//创建随机数
$rand = rand(0,$countnum);
//下面是输出类型
if($_GET['format']=='json'){
//输出当日所有 类型为json
header('Content-type: application/json');
echo json_encode($arr,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
}elseif($_GET['format']=='js'){
//以js类型输出一条
header('Content-type: text/javascript;charset=utf-8');
echo 'function briefing(){document.write("'.$arr['content'][$rand].'");}';
}else{
//以html类型输出一条
header("Content-Type: text/html;charset=utf-8");
echo $arr['content'][$rand];
}
//下面是需要用到的封装
function httpGet($a, $b = '', $c = '', $d = ''){
//curl模拟get请求
$e = curl_init();
$f = mt_rand(11, 191) . "." . mt_rand(0, 240) . "." . mt_rand(1, 240) . "." . mt_rand(1, 240);
$i[] = "CLIENT-IP:" . $f;
$i[] = "X-FORWARDED-FOR:" . $f;
$i[] = "User-agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11";
$i[] = "X-Requested-With: XMLHttpRequest";
if (!empty($d)) {
$i[] = "Cookie: " . $d;
}
curl_setopt($e, CURLOPT_HTTPHEADER, $i);
curl_setopt($e, CURLOPT_RETURNTRANSFER, true);
curl_setopt($e, CURLOPT_TIMEOUT, 180);
curl_setopt($e, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($e, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($c)) {
curl_setopt($e, CURLOPT_REFERER, $c);
}
if (!empty($b)) {
curl_setopt($e, CURLOPT_POST, 1);
curl_setopt($e, CURLOPT_POSTFIELDS, $b);
}
curl_setopt($e, CURLOPT_URL, $a);
curl_setopt($e, CURLOPT_ENCODING, "gzip");
$j = curl_exec($e);
curl_close($e);
return $j;
}
function match_chinese($chars,$encoding='utf8')
{
//清除正则
$pattern =($encoding=='utf8')?'/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u':'/[\x80-\xFF]/';
preg_match_all($pattern,$chars,$result);
$temp =join('',$result[0]);
return $temp;
}
简要描述:
- 历史上的今天(百度百科接口)
请求URL:
https://api.yum6.cn/briefing/baidu.php
请求方式:
- GET/POST/JSONP
参数:
参数名 | 必选 | 类型 | 参数值 | 说明 |
---|---|---|---|---|
format | 否 | string | text json js | 返回纯净文本 返回不进行unicode转码的json文本 返回document.write的脚本 |
返回示例
{
"code": "200",
"day": "2018年06月03日",
"content": [
"近代生理科学的奠基者威廉哈维逝世",
"清朝康熙重臣纳兰明珠逝世",
"美国政治家杰佛逊诞生",
"作家尼古拉米哈伊洛维奇卡拉姆津逝世",
"林则徐在虎门公开销毁鸦片史称虎门销烟",
"丹麦国王弗雷德里克八世出生",
"英国国王乔治五世诞生",
"德国军事家埃里希鲁登道夫诞生",
"奥地利音乐家约翰施特劳斯逝世",
"近代著名军事家国民革命军将张学良出生",
"奥地利作家弗兰兹卡夫卡去世",
"诺曼底号客轮创横越大西洋速度纪录",
"爱德华怀特执行美国首次太空行走任务",
"十五国集团首脑会议闭幕",
"中国互联网络信息中心组建"
]
}
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
code | int | 状态码:200->成功 |
day | string | 今天日期 |
content | array | 历史上的今天 |
使用教程
JS调用举例
js调用
<script src="https://api.yum6.cn/briefing/baidu.php?format=js"></script>
js输出
<div><script>briefing();</script></div>
JSON调用举例
json请求
https://api.yum6.cn/briefing/baidu.php?format=json
json输出
{"code":"200","day":"2018年06月03日","content":["近代生理科学的奠基者威廉哈维逝世","清朝康熙重臣纳兰明珠逝世","美国政治家杰佛逊诞生","作家尼古拉米哈伊洛维奇卡拉姆津逝世","林则徐在虎门公开销毁鸦片史称虎门销烟","丹麦国王弗雷德里克八世出生","英国国王乔治五世诞生","德国军事家埃里希鲁登道夫诞生","奥地利音乐家约翰施特劳斯逝世","近代著名军事家国民革命军将张学良出生","奥地利作家弗兰兹卡夫卡去世","诺曼底号客轮创横越大西洋速度纪录","爱德华怀特执行美国首次太空行走任务","十五国集团首脑会议闭幕","中国互联网络信息中心组建"]}
必须 注册 为本站用户, 登录 后才可以发表评论!