不用框架也能写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智研社是一个专注于人工智能领域的综合性平台
相关推荐
天丁o4 分钟前
企业 AI Agent 工程化落地:从需求边界到系统集成的 6 个环节光影6275 分钟前
Python接口自动化测试----Requests库基础入门程序媛_5 分钟前
【Python】连接PostgreSQL获取手机验证码涛思数据(TDengine)7 分钟前
从时序数据库到工业AI:涛思数据参编“人工智能+工业软件”评价规范,推动工业数据标准Kobebryant-Manba9 分钟前
学习参数管理是有头发的程序猿10 分钟前
竞品分析 + 用户洞察自动化|基于 item_review 评论接口 + 多 AI Agent 实现淘宝评论全量采集与智能分析(附python源码)信看10 分钟前
Jetson Orin Quectel QMI 拨号上网骑士雄师20 分钟前
课程导航LangGraph核心概念点灯小铭22 分钟前
基于51单片机的LED点阵汉字显示系统设计SilentSamsara24 分钟前
DuckDB + Python:嵌入式 OLAP 数据库的轻量分析实战