2017-03-21 78 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

什麼時候可以注意到差異?感謝您的回答。 –

相關問題