You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP合并并压缩CSS文件时输出空白,缺少什么必要配置?

问题原因及修复方案

核心错误点

  • 函数定义顺序错误:你在调用ob_start("compress")的时候,compress函数还没有被定义,PHP会抛出致命错误,若关闭了错误显示就会直接返回空白页。必须把函数定义放在ob_start调用之前。
  • 正则表达式语法错误:用来匹配CSS注释的正则没有对特殊字符转义,执行时会报正则解析错误,直接中断脚本运行。
  • 转义字符写法错误:替换换行、制表符的参数里漏掉了反斜杠,"rn"应写为"\r\n",否则无法正确匹配对应的空白字符(这个问题不会直接导致空白,但会让压缩功能失效)。
  • 文件路径不匹配:include引入的三个CSS文件如果和当前PHP脚本不在同一目录,或者权限不足无法读取,会抛出警告,也可能导致输出为空。

修复后的完整代码

<?php
// 先定义压缩函数
function compress( $minify )
{
    /* 移除CSS注释:修正后的正则表达式 */
    $minify = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $minify );
    /* 移除制表符、空格、换行等:修正转义字符 */
    $minify = str_replace( array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $minify );
    return $minify;
}

header('Content-type: text/css');
// 函数定义后再启动输出缓冲
ob_start("compress");

/* css文件引入:用__DIR__定位当前脚本目录,避免相对路径错误 */
include(__DIR__ . '/reset.css');
include(__DIR__ . '/application.css');
include(__DIR__ . '/responsive.css');

ob_end_flush();
?>

额外排查项

如果修改后还是空白,可以先临时开启错误显示定位问题,在代码最顶部加入:

error_reporting(E_ALL);
ini_set('display_errors', 1);

确认无错误后再移除错误显示代码即可。

内容的提问来源于stack exchange,提问作者santa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 00:27:02