php - 自动替换每个文件中的第一行

标签 php css minify

我有几个缩小的文件(CSS 和 JS),我想自动替换每个文件的第一行(每个文件的第一行类似于 Minified @ 2017-03-21) 当我重新缩小这些文件时。

我目前正在以这种方式添加该信息,但我接受建议:

<?php
$file = "test.css";
$add_info = "/* --- Minified today --- */ \n";
$add_info .= file_get_contents($file);
file_put_contents($file, $add_info);
?>

所以我的文件是这样结束的:

/* --- Minified today --- */
body{margin:0}; /* etc */

显然,经过几次重复之后,结果如下:

/* --- Minified today --- */
/* --- Minified today --- */
/* --- Minified today --- */
/* --- Minified today --- */
body{margin:0}; /* etc */

这根本没有用。

那么,我怎样才能做到这一点(而不影响性能)?该操作每周仅执行 1 到 2 次(最多),并且压缩后文件约为 30KB。

注意:我使用的是 PHP 5.5 和 Apache 2.4。

最佳答案

您可以使用 file() 将文件读入数组并替换第一行。然后 file_put_contents() 将为您内爆数组:

$file = "test.css";
$lines = file($file);
$add_info = "/* --- Minified today --- */ \n";
$lines[0] = $add_info;
file_put_contents($file, $lines);

如果他们可能没有将其作为第一行,请检查并替换它或插入它:

if(strpos($lines[0], '/* --- Minified') !== false) {
    $lines[0] = $add_info;
} else {
    array_unshift($lines, $add_info);
}

关于php - 自动替换每个文件中的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937035/

相关文章:

php - 使用多个表中的多个变量搜索 mysql

php - 使用 Cast Mysql 将时间戳转换为 MM-DD-YY

php - MySQL 数据库中没有显示任何内容

html - 扩展屏幕宽度时从 2 列变为 3 列

javascript - Twitter Bootstrap 模板页面跳转跳过 div 的开头

c# - 我可以在 Microsoft Visual Studio 2010 中缩小 JavaScript 或 aspx 代码吗

php - 错误 405(发出 Ajax 请求时不允许使用方法)

jquery - 使用表单元素将页面加载到 div 并更新地址栏

angularjs - 动态图像 ng-src 不会更改为缩小图像名称

bash - 无法加载插件 clean-css 请确保它安装在 less 下或与其相同级别