PHP API 制作教程:从数据源到接口返回
通过本教程了解如何使用 PHP 读取本地 TXT 文件并结合 array_rand 或 file 函数,快速构建支持随机内容与 JSON 输出的简易 API。
第一步:准备数据源
在编写代码之前,首先需要准备好需要暴露给 API 调用的数据。对于图片 API,通常是一个包含图片 URL 的文本文件。
打开一个文本编辑器(如 Notepad、Sublime Text 等),将所有的图片地址逐行输入。确保:
- 无多余空行:每张图片占据一行,避免空行导致解析错误。
- URL 有效:测试每个链接在浏览器中是否可以正常访问。
假设该文件命名为 img.txt,后续操作都需要它作为输入。
方法一:使用数组处理返回指定格式
这种方法先读取所有文件内容并存入数组,然后通过参数控制是返回 JSON 对象还是直接进行 HTTP 302 跳转。
第 1 步:创建并编写 PHP 脚本
新建一个 PHP 文件(例如 api.php),并填入以下代码逻辑:
<?php
// 存有美图链接的文件名 img.txt
$filename = "img.txt";
// 检查文件是否存在
if (!file_exists($filename)) {
die('文件不存在');
}
// 1. 从文本获取链接
$pics = [];
$fs = fopen($filename, "r");
while (!feof($fs)) {
$line = trim(fgets($fs));
if ($line != '') {
array_push($pics, $line);
}
}
// 2. 从数组中随机获取一个链接
$pic = $pics[array_rand($pics)];
// 3. 根据请求参数决定返回格式
$type = $_GET['type'] ?? '';
switch ($type) {
// JSON 返回
case 'json':
header('Content-type:text/json');
die(json_encode(['pic' => $pic]));
default:
// 默认直接跳转到目标图片
die(header("Location: $pic"));
}
?>
第 2 步:配置运行环境
必须注意:$filename = "img.txt"; 这一行指定的文件名对应的文件,必须放在与当前 php 文件相同的目录下。
第 3 步:测试运行效果
在终端运行该文件或在 Web 服务器上访问,可以观察到不同的行为:
- 不传参时:服务器响应头部指向了某个具体的图片 URL。
- 传入
?type=json时:返回类似 {"pic":"..."} 的纯文本数据。
方法二:基于行数计算的 JSON 返回模式
如果你的应用场景只需要返回 JSON 数据(例如挂接机器人自动抓取图片地址),可以使用更精简的行数法。
第 1 步:简化的核心代码
创建一个新文件或替换原逻辑,参考如下代码:
<?php
// 忽略报错信息,防止敏感路径泄露
error_reporting(0);
$f = 'cai.txt'; // 文件名
$data = file($f); // 把文件的所有内容获取到数组里面
$n = count($data); // 获得总行数
$rnd = rand(0, $n - 1); // 产生随机行号(注意索引是从0开始的)
$rnd_line = $data[$rnd]; // 获得随机行
$trimmed_str = trim($rnd_line); // 去除末尾换行和空格
// 手动构造 JSON 字符串
$json = '{"data":"'.$trimmed_str.'"}';
echo $json;
// echo json_decode($json); // 若需要可在此解码
?>
注意事项
rand(0, $n)存在潜在越界风险,因为数组索引从 0 开始,最大值应为$n - 1。上述代码已做相应修正以确保稳定性。
部署与应用说明
个人制作 API 常用于学习、挂接私人机器人或内部数据流转。要实现对外访问,只需将 .txt 数据文件和 .php 脚本上传至你的域名根目录即可。
例如放置在 /tu/ren.php 下,访问方式变为:
https://yourdomain.com/tu/ren.php?type=json
以上就是 PHP 制作基础 API 接口的详细内容,更多关于 PHP 接口开发与数据处理技术的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













