不用框架也能写RESTful接口,核心是用_SERVER\['REQUEST_METHOD'\]区分HTTP方法,json_encode()返回数据,并严格设置header('Content-Type: application/json; charset=utf-8'),任何输出前禁止echo、空白符或错误提示。怎么用 PHP 快速写一个可被调用的 RESTful 接口直接说结论:不用框架也能写,核心是靠 _SERVER'REQUEST_METHOD' 区分动作,用 json_encode() 返回数据,再加几行 header 设置。关键不是"多规范",而是"别让前端拿不到数据"。常见错误现象:405 Method Not Allowed(没处理对应 HTTP 方法)、500 Internal Server Error(没设 Content-Type 或输出了额外空格)、前端收不到 JSON(header 没写对或用了 echo 混淆)。必须手动设置 header('Content-Type: application/json; charset=utf-8');,否则浏览器/前端可能当文本解析所有输出前不能有任何 echo、print、空白符,包括文件末尾的换行用 file_get_contents('php://input') 读取 POST/PUT 的原始 body,别只依赖 _POST(它不处理 JSON)简单接口建议用 switch(_SERVER'REQUEST_METHOD') 分支,比一堆 if 更清晰GET 和 POST 请求怎么分别处理才不踩坑GET 用 _GET 拿参数没问题,但 POST 就容易错------尤其前端发的是 JSON 格式时,_POST 是空的,因为 PHP 默认只解析 application/x-www-form-urlencoded 和 multipart/form-data。GET 接口示例路径:/api/users?id=123 → 直接取 _GET\['id'\],记得用 filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT) 过滤POST 接口若接收 JSON:raw = file_get_contents('php://input'); → data = json_decode(raw, true);,再检查 data !== null不要在同一个脚本里混用 _POST 和 php://input,PHP 会因输入流已读完导致后者返回空字符串如果用 cURL 测试,记得加 -H "Content-Type: application/json",否则服务端可能忽略 body为什么返回 JSON 时 header 顺序和状态码这么重要HTTP 状态码不是装饰,前端会根据它做逻辑分支;header 顺序不对,有些客户端(比如旧版 iOS WebView)会直接丢弃响应体。 AI智研社 AI智研社是一个专注于人工智能领域的综合性平台
相关推荐
十年Java程序媛9 分钟前
JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STWhaluhalu.9 分钟前
深入理解AIAgent(1.3)--- 设计模式估值探索者10 分钟前
【Python量化选股流水线 #03】候选股怎么排序?动量+低波+流动性三因子打分取 Top-N骑士雄师10 分钟前
supervisor 中关于上下文多轮信息维护常用到的python语法Crayon Lin15 分钟前
Milvus向量数据库入门cspttty16 分钟前
2027校招准备:数学与应用数学专业如何补齐管理咨询的业务、分析与表达能力青少儿编程课堂18 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C/C++考级:任意进制互转与大数多进制加法解析曹牧20 分钟前
C#:字符串占位符与值数量不一致Orchestrator_me24 分钟前
k8s网络与应用小马不起床25 分钟前
Django 后端实战指南_14:门店、省份、用户门店关系查询接口