我需要遍历 CSS 文件以查找特定项目并将其 CSS 更改为主题编辑器的更新内容。我在花括号之间有一个包含所有 CSS 的变量,我只需要找到一种方法来选择给定标签后的大括号并替换内容。任何帮助将不胜感激!谢谢
问问题
339 次
1 回答
0
也许不是唯一的解决方案,但您是否考虑过将 CSS 放入数据库并动态生成 CSS 文件?
将其存储在数据库中还使您可以在每次发生更改时重新生成文件,并将其缓存起来以节省性能。
要修改现有文件,您可能需要遍历文件并希望没有人手动更改 CSS 文件的样式约定,并通过记住最后一个标签/类/id 表达式来替换(可能不起作用盒子外面!):
$newFileContent = "";
$searchClass = "td.content";
$lines = file("style.css");
$insideSearchedTag = false;
foreach($lines as $line) {
if (strstr($line, $searchClass) !== false) {
$insideSearchedTag = true;
$newFileContent .= "\n" . $line;
}
else if (strstr($line, "}") !== false) {
$insideSearchedTag = false;
$newFileContent .= "\n" . $line;
}
else if ($insideSearchedTag) {
// search/replace the content you want to replace.
$newLineContent = str_ireplace($searchStyle, $replaceStyle, $line);
$newFileContent .= "\n" . $newLineContent;
}
else { $newFileContent .= "\n" . $line; }
}
fwrite($file, $newFileContent);
于 2012-09-07T11:32:04.473 回答