【问题标题】:How to minify css on the fly?如何即时缩小css?
【发布时间】:2013-12-17 06:16:35
【问题描述】:

我正在尝试在 WordPress 中即时缩小 css,因为如果我直接进行缩小,我的主题在评论被删除时将无法工作。

首先我尝试从任何指定的 css 文件中删除 cmets,它的工作正常是代码

<?php
$cssfile = 'style.css';//css file needed to minify
$file = fopen($cssfile, 'r');
if ($file) {
    $buffer = file_get_contents('style.css');//getting content of css file needed to minify
    $buffers = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);

    echo $buffers;
}?>

我想即时做同样的事情。在许多教程中都使用ob_start() 并说http request。我不知道这些事情以及它们的作用,我也无法看到它们在哪里指定文件路径,就像我在第一行 $cssfile

中所做的那样

我认为他们告诉$_GET[something] 文件。这是他们提到需要缩小的 css 文件的地方吗?(提到 css 的路径)

谁能帮我做一个动态的 css 缩小,解释 ob_start()、http 请求及其工作原理。

【问题讨论】:

  • 你为什么fopening文件?此外,动态缩小 CSS 也不是一个好主意。缩小 CSS 是您在将文件移动到服务器之前所做的一次。
  • 只是为了检查权限,我做了 fopen。但我使用文件获取条件内的内容@Sverri M. Olsen
  • 答案是告诉第三方文件缩小吗? @徐丁

标签: php css wordpress http http-headers


【解决方案1】:

可以从css文件中删除多余的空格

试试这个

<?php
$search = array(
        '/\>[^\S]+/s', // strip whitespaces after tags, except space
        '/[^\S]+\</s', // strip whitespaces before tags, except space
        '/(\s)+/s'       // shorten multiple whitespace sequences
    );

    $replace = array(
        '>',
        '<',
        '\\1'
    );

    $style = preg_replace($search, $replace, $buffer = file_get_contents('style.css'));
?>

<style type="text/css"><?php echo $style; ?></style>

【讨论】:

    【解决方案2】:

    好的。这个怎么样: http://manas.tungare.name/software/css-compression-in-php

    他的功能似乎解决了你的问题。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2021-06-05
    • 2017-10-05
    • 2012-06-23
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多