
帝国CMS本身没有内置标准的数据接口功能,但可以通过自定义PHP文件结合其数据库操作类来实现JSON数据输出,满足前后端分离或外部系统调用的需求。
1. 创建自定义API接口文件
在网站根目录或指定目录下创建一个PHP文件,例如 api.php,用于处理数据请求并返回JSON格式数据。
基本结构如下:
<?php// 引入帝国CMS配置文件和数据库操作类require ‘../e/class/connect.php’;require ‘../e/class/db_sql.php’;require ‘../e/data/dbcache/class.php’;// 实例化数据库类$empire = new mysqlquery();// 设置响应头为JSONheader(‘Content-Type: application/json; charset=utf-8’);// 查询示例:获取最新10条新闻$sql = $empire->query("SELECT id, title, newstime, titleurl FROM {$dbtbpre}ecms_news ORDER BY newstime DESC LIMIT 10");$data = array();while ($r = $empire->fetch($sql)) { $data[] = array( ‘id’ => (int)$r[‘id’], ‘title’ => htmlspecialchars($r[‘title’]), ‘newstime’ => (int)$r[‘newstime’], ‘url’ => $r[‘titleurl’] );}// 输出JSON数据echo json_encode(array(‘code’ => 0, ‘msg’ => ‘success’, ‘data’ => $data), JSON_UNESCAPED_UNICODE);// 释放资源$empire->free($sql);db_close();?>
2. 安全性与参数控制
实际使用中应加入访问权限控制和输入验证,避免直接暴露数据库。
添加token验证或IP限制,防止未授权访问 对GET/POST参数进行过滤,如分页、栏目ID等 使用 $empire->real_escape_string() 防止SQL注入
3. 支持条件查询(示例)
可通过URL传参实现动态查询,例如:
// 获取栏目ID参数$classid = (int)$_GET[‘classid’] ?? 0;$limit = (int)$_GET[‘limit’] ?? 10;$where = ”;if ($classid > 0 && in_array($classid, $class_r)) { $where = " WHERE classid=’$classid’";}$sql = $empire->query("SELECT id, title, newstime, titleurl FROM {$dbtbpre}ecms_news $where ORDER BY newstime DESC LIMIT $limit");
4. 返回标准JSON格式
建议统一返回结构,便于前端解析:
{ "code": 0, "msg": "success", "data": [ { "id": 123, "title": "新闻标题", "newstime": 1700000000, "url": "/news/123.html" } ]}
错误时可返回:
{"code": 1, "msg": "参数错误", "data": []}基本上就这些。通过手动构建接口文件,帝国CMS可以灵活输出JSON数据,关键在于引入核心文件、安全查询和规范输出格式。

评论(0)