PHP API 制作教程:从数据源到接口返回

Mia
Mia
发布时间:2026-10-16 | 7人浏览过
原创

通过本教程了解如何使用 PHP 读取本地 TXT 文件并结合 array_rand 或 file 函数,快速构建支持随机内容与 JSON 输出的简易 API。

第一步:准备数据源

在编写代码之前,首先需要准备好需要暴露给 API 调用的数据。对于图片 API,通常是一个包含图片 URL 的文本文件。

打开一个文本编辑器(如 Notepad、Sublime Text 等),将所有的图片地址逐行输入。确保:

  1. 无多余空行:每张图片占据一行,避免空行导致解析错误。
  2. 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 接口开发与数据处理技术的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表