我正在使用str_replace清理CSS輸出,但需要忽略具有定義的開始和結束的某些字符串塊。PHP忽略來自str_replace的字符串塊
忽略任何開頭:
@media blah(this can be any value) {
內容忽略:
.class {
property: value;
}
,結尾是:
}/*ends*/
,做str_replace函數該塊之外時,而不是:
.otherclass {property:value;}
PHP:
$output = str_replace("{", "{\n", $output);
$output = str_replace("}", "}\n", $output);
的原因是@media塊需要這已經是格式正確適當的縮進,而不應通過str_replace函數觸及這簡單的回讀行:
.otherclass {
property:value;
}
將如何你用PHP說它?
感謝
即時通訊這是格式化文件的一種奇怪的方法。看看正則表達式,更多的靈活性......或者將整個文件讀入數組並掃描整個數組。如果您遇到開始標籤'{'縮進,如果您發現'@ media'跳過等...另外,看到這個線程http://stackoverflow.com/questions/1376958/linux-automated-code-formatting-php-javascript-html-css-mysql – Alex 2012-04-24 04:23:40
其動態聚合和提取的CSS,這就是爲什麼他們有不同的格式CSS代碼塊,所以IDE不在這裏。基於設置定義的自定義輸入,其大部分格式化想要忽略的塊,以及一些外部CSS文件的副本,並作爲壓縮的不可讀版本附加到單個文件中,並與該自定義輸入一起使用。現在我需要將這些聚合/壓縮版本處理爲更易讀的CSS代碼塊,同時忽略某些@media塊。謝謝 – swan 2012-04-24 04:41:22