代码说明:
-
函数定义:
getAnswerFromApi($question)
:封装对 API 的请求。- 参数
$question
:要查询的问题内容。 - 返回值:包含问题和答案的关联数组。
-
cURL 请求:
- 使用
curl_init()
初始化一个 cURL 句柄。 - 设置请求的 URL 和选项。
- 使用
curl_exec()
执行请求并获取响应。
- 使用
-
错误处理:
- 检查 cURL 错误和 JSON 解析错误,并输出错误信息。
-
解析 JSON 响应:
- 使用
json_decode()
解析 API 返回的 JSON 数据。
- 使用
-
返回结果:
- 返回包含
question
和answer
的关联数组。 - 接口适用于超星智慧树
- 返回包含
<?php
/**
* 封装对指定 API 接口的请求,并返回问题和答案。
*
* @param string $question 问题内容
* @return array 返回问题和答案的关联数组
*/
function getAnswerFromApi($question) {
// 定义 API 接口的 URL
$apiUrl = 'http://up.026wk.xyz/tkapi4.php';
// 创建一个 cURL 句柄
$ch = curl_init();
// 设置 cURL 的选项
curl_setopt($ch, CURLOPT_URL, $apiUrl . '?question=' . urlencode($question));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 执行 cURL 请求并获取响应
$response = curl_exec($ch);
// 检查是否发生错误
if (curl_errno($ch)) {
echo 'cURL 错误: ' . curl_error($ch);
return [];
}
// 关闭 cURL 句柄
curl_close($ch);
// 解析 JSON 响应
$data = json_decode($response, true);
// 检查 JSON 解析是否成功
if (json_last_error() !== JSON_ERROR_NONE) {
echo 'JSON 解析错误: ' . json_last_error_msg();
return [];
}
// 返回问题和答案
return [
'question' => $data['question'] ?? '无问题',
'answer' => $data['answer'] ?? '无答案'
];
}
// 示例用法
$question = isset($_REQUEST['question']) ? $_REQUEST['question'] : null;
$result = getAnswerFromApi($question);
print_r($result);
?>