У меня есть php, который заменяет значения цвета в файлах css в каталоге. Он отлично работает, за исключением того, что он ищет файлы css только в основном каталоге. Я искал, но не могу найти простой способ сделать это рекурсивным. Любые идеи?
В настоящее время я использую $arr=glob("themes/Evolution/*.css");
Пример структуры папок с файлами css.
Main Dir > Style.css
Main Dir > Folder 1 > mycss.css
Main Dir > Folder 2 > mycss.css
Main Dir > Folder 3 > mycss.css
//Read default color from INI
$lines_array = file("modules/evolution/evolution.ini");
$search_string = "currentcolor";
foreach($lines_array as $line) {
if(strpos($line, $search_string) !== false) {
list(, $new_str) = explode("=", $line);
$new_str = trim($new_str); //This line removes the spaces before and after.
}
}
$inicurrentcolor = $new_str;
//code to change css color
if(isset($_REQUEST['resetcolor'])){
$arr=glob("themes/Evolution/*.css"); //your css file's path
$textboxdefaultcolorcode=$_POST['defaultcolor'];
foreach($arr as $key=>$val){
$str=file_get_contents($val);
$str=str_replace($inicurrentcolor, $textboxdefaultcolorcode, $str);
file_put_contents($val, $str);
}
}
<div class="colorbox">
<br>
<label id="steps">Reset Evolution theme color back to the default color.</label>
<br>
<br>
<Form name="default1" method="POST" action="home.php?m=evolution">
<label for="color1">Default Theme Color: </label><input style="background-color:#379BB9; color:#ffffff" type="text" id="defaultcolor" name="defaultcolor" value="#379BB9" readonly>
<br>
<br>
<input type="submit" name="resetcolor" value="Reset Theme Color">
</form>
<br>
</div>