挑战古诗词API接口PHP源码


简介

PHP挑战古诗词API接口源码,小游戏api接口

内容为百度接口,可做答题接口

参数说明: 当msg为空,获取新题目,当msg为数字1,2,3,4时为作答,当msg为提示时则给出当前题目相关提示。id为当前做题账号

 

源码

需要按照程序中新建data/tzgsc/

<?php
header("Content-Type:text/html;charset=UTF-8");
function replace_unicode_escape_sequence($match){
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');}
if($_GET["msg"]==""){
echo get($_GET["id"]);
}else{
$data=file_get_contents("data/tzgsc/".$_GET["id"].".txt");
preg_match_all('/tm(.*?)z(.*?)l(.*?)n(.*?)nian(.*?)d(.*?)d/',$data,$t);
if($_GET["msg"]==$t[6][0]){
echo "恭喜你,回答正确。\n请继续下一题\n\n";
exit(get($id));}else{
if($_GET["msg"]=="提示"){
exit("这是首描写".$t[3][0]."的诗,你在".$t[4][0]."学过它。");}
exit("抱歉,答案不对哦。\n你可以回复提示获取该题的部分信息哦。");}
}
function get($id){
$data=get_curl("https://hanyu.baidu.com/hanyu/ajax/pingce_data");
$data = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $data);
//exit($data);
$cj=cj($data);
$s = preg_match_all('/{"question_content":"(.*?)","type":{"person":"(.*?)","type":"(.*?)","grade":"(.*?)","dynasty":"(.*?)"},"option_answers":\[(.*?)\]}/',$data,$t);
if($s==0){exit("抱歉,获取出现错误。");}
$tm=$t[1][0];//题目
$z=$t[2][0];//作者
$l=$t[3][0];//描写类型
$n=$t[4][0];//学习阶段
$nd=$t[5][0];//年代
echo "如题:".$tm."\n请从下面四个选项中选择一个你认为对的来回答。\n\n";
preg_match_all('/{"answer_content":"(.*?)","is_standard_answer":(.*?)}/',$t[6][0],$d);
$ps="tm".$tm."z".$z."l".$l."n".$n."nian".$nd;
for( $i = 0 ; $i < 4 ; $i ++ ){
$d1=$d[1][$i];
$p=$d[2][$i];
if($p=="1"){file_put_contents("data/tzgsc/".$id.".txt",$ps."d".($i+1)."d");
}
echo ($i+1)."、".$d1."\n";
}
}
function cj($data){
if(!$data)exit("");//无数据返回
$s=preg_match_all('/{"question_content":"(.*?)","type":(.*?)}]}/',$data,$d);
$json="data/tzgsc/tzgsc.json";
@$pd = file_get_contents($json);
for( $i = 0 ; $i < $s ; $i ++ ){
$d1=$d[1][$i];
$d2=$d[2][$i];
$a='{"question_content":"'.$d1.'","type":'.$d2.'}]}';
$p = explode($d1,$pd);
if(count($p)>1){
//存在不写入
}else{
file_put_contents($json, $a, FILE_APPEND | LOCK_EX);//追加写入,防止同时写入。
//不存在,继续写入。
}
}}
function get_curl($url,$post=0,$referer=1,$cookie=0,$header=0,$ua=0,$nobaody=0){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$httpheader[] = "Accept:application/json";
$httpheader[] = "Accept-Encoding:gzip,deflate,sdch";
$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";
$httpheader[] = "Connection:close";
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
if($post){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);}
if($header){
curl_setopt($ch, CURLOPT_HEADER, TRUE);}
if($cookie){
curl_setopt($ch, CURLOPT_DICTAPP_MID, $cookie);}
if($referer){
if($referer==1){
curl_setopt($ch, CURLOPT_REFERER, 'https://m.qzone.com/infocenter?g_f=');
}else{
curl_setopt($ch, CURLOPT_REFERER, $referer);}}
if($ua){
curl_setopt($ch, CURLOPT_USERAGENT,$ua);
}else{
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; U; Android 4.4.1; zh-cn) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.5 Mobile Safari/533.1');}
if($nobaody){
curl_setopt($ch, CURLOPT_NOBODY,1);}
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$ret = curl_exec($ch);
curl_close($ch);
return $ret;}
?> 
本文最后更新于2023-3-22,已超过 1 年以上没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
CTRL+D快速收藏,欢迎常来喔

本文来自投稿,不代表本站立场,如若转载,请注明出处: https://www.xixd.cn/post-145.html
原文地址: 《挑战古诗词API接口PHP源码》 发布于2023年3月22日

温馨提示: 没找到想要的资源?资源链接失效?下载后资源打不开?点我进群帮你解决!

本文标签:

发表评论
您需要登录后才可以回复 【 登录 】
0 评论
还没有评论,快来抢沙发吧!