2017-03-21 18 views
1

我有几个缩小的文件(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。

回答

3

您可以使用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); 
} 
+0

按预期工作。性能如何? –

+1

对于你所说的,你甚至不会注意到。也许和你现在做的没什么不同。唯一的区别是数组而不是字符串。 – AbraCadaver

+0

什么时候可以注意到差异?感谢您的回答。 –

相关问题