一、前置准备:确认错误根源和环境
先做2步基础排查,避免无效修复:
- 确认错误类型:打开浏览器开发者工具(F12键通用,Mac用户按Cmd+Option+I),切换到「Console(控制台)」标签页,刷新报错页面,截图保留红色错误代码;若为后台操作报错,复制后台弹出的完整中文/英文提示。
- 检查基础环境:登录苹果CMS后台「系统→系统配置→网站配置→基础参数」,确认PHP版本兼容苹果CMS(V10需PHP7.2-7.4,V8需PHP5.6-7.1,低版本PHP会导致JSON/XML解析类格式错误)。
二、最常见:采集资源/上传视频的乱码、排版问题
这类错误占苹果CMS格式问题的80%以上,按优先级分3个场景修复。
2.1 场景1:浏览器显示页面全是乱码
核心原因:编码不一致(苹果CMS默认UTF-8,采集源/数据库/上传文件可能用GBK/GB2312)

修复步骤:
- 修改数据库编码(核心):
- 登录你的服务器/虚拟主机数据库管理工具(如phpMyAdmin,宝塔面板直接在「数据库」点击「管理」进入)。
- 选中苹果CMS对应的数据库(数据库名可在后台「系统→系统配置→数据库配置」或根目录下的「application/database.php」查看)。
- 点击顶部「操作」标签,在「整理」下拉框选择utf8mb4_unicode_ci(V8选utf8_general_ci兼容性更好),勾选「将整理规则应用于所有表」→ 勾选「将整理规则应用于所有表列」,点击「执行」。
- 修改后台编码:
- 登录苹果CMS后台「系统→系统配置→网站配置→基础参数」,找到「全站编码」,选择UTF-8,点击「保存配置」。
- 进入「系统→系统配置→采集配置」,找到「采集编码」,选择自动检测编码(采集源编码稳定可手动选),点击「保存配置」。
- 修复根目录文件编码:
- 下载苹果CMS根目录下的「index.php」「config.php」(V10找「application/config.php」)「template/当前模板/header.html」文件。
- 用Notepad++(下载地址:https://notepad-plus-plus.org/downloads/)打开,点击顶部「编码」→ 确认是「转为UTF-8无BOM编码格式」,若不是则点击切换后保存,再上传覆盖原文件。
2.2 场景2:采集的视频简介/标题换行失效、排版混乱
核心原因:采集源用了`
`或`
`以外的换行标签(如`\n`、`\r\n`、`
`分段),苹果CMS模板没解析
修复步骤:
- 修改采集规则替换标签:
- 登录后台「采集→采集管理→对应资源节点→采集规则编辑」。
- 找到简介、标题等字段的「正则替换」部分,添加3条规则(注意顺序,从上到下):
- 原正则:
]>,替换为:
- 原正则:
,替换为:
- 原正则:
\r\n|\n|\r,替换为:
- 点击「保存采集规则」,重新采集对应资源测试。
- 检查模板是否过滤标签:
- 打开采集内容展示对应的模板文件(如视频详情页是「template/当前模板/vod/play.html」或「info.html」)。
- 找到简介的调用代码,若有
{$obj.vod_content|raw}以外的过滤(如|strip_tags),删除所有过滤标签仅保留|raw,保存上传覆盖原文件。
2.3 场景3:上传本地视频/图片提示「格式不支持」
核心原因:后台上传限制的扩展名/MIME类型不全,或PHP上传配置(upload_max_filesize、post_max_size等)过小
修复步骤:
- 修改后台上传配置:
- 登录后台「系统→系统配置→附件配置」。
- 找到「允许上传的文件类型」,修改为:
jpg,jpeg,png,gif,bmp,webp,mp4,mkv,avi,mov,rmvb,flv,wmv。
- 找到「允许上传的文件MIME类型」,修改为:
image/jpeg,image/png,image/gif,image/bmp,image/webp,video/mp4,video/x-matroska,video/x-msvideo,video/quicktime,application/vnd.rn-realmedia-vbr,video/x-flv,video/x-ms-wmv。
- 「单个附件最大上传大小」根据需求改(如2048M=2GB,注意单位是M),点击「保存配置」。
- 修改PHP上传配置(宝塔面板为例):
- 登录宝塔面板,点击「软件商店→已安装→对应PHP版本→设置」。
- 切换到「配置修改」标签,搜索以下3个参数并修改(注意单个大小不能超过总大小,总大小建议留10%-20%冗余):
- upload_max_filesize = 2048M
- post_max_size = 2560M
- max_execution_time = 300
- 点击「保存」,再点击「服务」标签→「重载配置」。
三、小众但高频:JSON/XML接口返回格式错误
这类错误主要影响API对接、手机APP或播放器调用,控制台提示「JSON parse error」或「XML syntax error」。
3.1 接口返回有多余空行或空格
核心原因:根目录文件、模板文件、数据库配置文件保存时多了空行
修复步骤:
- 用Notepad++批量排查:下载根目录下的「index.php」「config.php」(V10找「application/config.php」「application/database.php」「application/route.php」)和接口对应的模板文件(如API模板是「template/你的API模板目录/vod/api_vod_list.html」)。
- 每个文件检查开头结尾:确认所有文件的
前没有空行或空格,?>后(如果有的话)也没有空行或空格;如果文件是纯PHP逻辑,建议删除末尾的?>(可以彻底避免多余输出)。
- 重新保存并覆盖原文件。
3.2 V10接口返回乱码JSON
核心原因:V10默认用ThinkPHP5.1的JSON返回,但可能开启了压缩或模板没设置UTF-8
修复步骤:
- 关闭ThinkPHP压缩输出:打开「application/config.php」,搜索
'html'→ 找到'html' => [
'type' => 'Think',
'view_path' => '',
'view_suffix' => 'html',
'view_depr' => DIRECTORY_SEPARATOR,
'tpl_begin' => '{',
'tpl_end' => '}',
'taglib_begin' => '{',
'taglib_end' => '}',
'tpl_replace_string' => [],
// 这里可能有压缩设置
],如果找到'tpl_cache' => false以外的压缩设置(如'tpl_compile' => true, 'html_compress' => true),删除或注释掉,保存覆盖。
- 接口模板强制加UTF-8:打开所有API模板文件,在第一行添加
,保存覆盖。
四、最终验证:全链路测试修复效果
所有修改完成后,做3步测试确保彻底修复:
- 清理缓存:登录后台「系统→系统工具→清理缓存」,全选所有缓存项,点击「清理」。
- 前台测试:刷新浏览器(Ctrl+F5强制刷新),打开乱码/排版混乱的页面,检查是否正常。
- 后台测试:重新采集一条资源、上传一个小视频/图片、测试接口(直接在浏览器输入接口地址,检查返回的JSON/XML是否正常、无多余空行)。