豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: PHP源码JSON接口

🤖 Ai回答:
在 PHP 中创建一个 JSON 接口(API),本质上是编写一个 PHP 脚本,接收客户端请求(如 GET/POST),处理数据后以 JSON 格式返回响应。以下是完整示例和最佳实践:

✅ 基础示例:返回简单 JSON 数据

php
<?php
// 设置响应头为 JSON
header('Content-Type: application/json; charset=utf-8');

// 模拟数据
$data = [
'status' = 'success',
'message' = 'Hello from PHP API!',
'timestamp' = date('Y-m-d H:i:s')
];

// 输出 JSON
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
?

💡 `JSON_UNESCAPED_UNICODE` 避免中文被转义;`JSON_PRETTY_PRINT` 使输出格式美观(调试用)。

🔄 接收参数并返回动态数据

php
<?php
header('Content-Type: application/json; charset=utf-8');

// 获取 GET 参数
$id = $_GET['id'] ?? null;

if (!$id) {
http_response_code(400); // Bad Request
echo json_encode([
'status' = 'error',
'message' = 'Missing required parameter: id'
]);
exit;
}

// 模拟数据库查询
$users = [
1 = ['name' = '张三', 'email' = 'zhang@65.hk'],
2 = ['name' = '李四', 'email' = 'li@65.hk']
];

$user = $users[$id] ?? null;

if (!$user) {
http_response_code(404); // Not Found
echo json_encode([
'status' = 'error',
'message' = User with ID $id not found
]);
} else {
echo json_encode([
'status' = 'success',
'data' = $user
]);
}
?

📦 处理 POST 请求(如表单或 JSON Body)

php
<?php
header('Content-Type: application/json; charset=utf-8');

// 判断是否为 POST 请求
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405); // Method Not Allowed
echo json_encode(['error' = 'Only POST method allowed']);
exit;
}

// 读取原始 POST 数据(用于接收 JSON)
$json = file_get_contents('php://input');
$data = json_decode($json, true);

if (json_last_error() !== JSON_ERROR_NONE) {
http_response_code(400);
echo json_encode(['error' = 'Invalid JSON input']);
exit;
}

// 示例:验证用户名和密码
if (!isset($data['username']) !isset($data['password'])) {
http_response_code(400);
echo json_encode(['error' = 'Username and password are required']);
exit;
}

// 模拟登录逻辑
if ($data['username'] === 'admin' && $data['password'] === '123456') {
echo json_encode([
'status' = 'success',
'message' = 'Login successful',
'token' = bin2hex(random_bytes(32)) // 生成模拟 token
]);
} else {
http_response_code(401);
echo json_encode(['status' = 'error', 'message' = 'Invalid credentials']);
}
?

🔐 安全建议

1、输入验证与过滤:
php
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (!$id) { /* 报错 */ }


2、防止 SQL 注入 → 使用 PDO + 预处理语句:
php
$stmt = $pdo-prepare(SELECT * FROM users WHERE id = ?);
$stmt-execute([$id]);


3、CORS 支持(跨域请求):
php
header(Access-Control-Allow-Origin: *);
header(Access-Control-Allow-Methods: GET, POST, OPTIONS);
header(Access-Control-Allow-Headers: Content-Type);


4、错误处理:
php
error_reporting(0); // 生产环境关闭错误显示
// 或记录日志
error_log(Error: 、$e-getMessage());


🧪 测试接口

你可以用浏览器访问:

http://localhost/api.php?id=1

或使用 `curl`:
bash
curl -X POST http://localhost/api.php \
-H Content-Type: application/json \
-d '{username:admin,password:123456}'

📁 项目结构建议(进阶)

project/
├── api/
│ ├── index.php 入口文件
│ ├── config.php 数据库配置
│ └── controllers/ 控制器
│ └── UserController.php
└── vendor/ Composer 依赖

🚀 进阶框架推荐

如果你希望构建更复杂的 API,推荐使用现代 PHP 框架:

Laravel(功能强大,生态丰富)
Slim(轻量级 REST API 框架)
Lumen(Laravel 的微框架,适合 API)

✅ 总结

一个标准的 PHP JSON 接口应包含:

1、正确设置 `Content-Type: application/json`
2、使用 `json_encode()` 返回数据
3、合理使用 HTTP 状态码(200, 400, 404, 500 等)
4、输入验证、安全防护、错误处理
5、(可选)支持 CORS、认证机制(JWT/OAuth)

如需根据具体业务(如用户管理、商品列表、支付回调等)定制接口,欢迎提供需求,我可以为你生成完整代码!

Ai作答

📣 商家广告


广告招商

黄金域名

广告招商

香港vps

中国域名


0

IP地址: 134.152.104.66

搜索次数: 13

提问时间: 2025-11-04 16:52:21

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 86611 86612 86613 下一篇