首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP递归搜索目录文件并更改值

使用PHP递归搜索目录文件并更改值
EN

Stack Overflow用户
提问于 2016-10-16 18:16:33
回答 1查看 50关注 0票数 2

我有一些php正在替换目录中css文件中的颜色值。它工作得很好,只是它只在主目录中搜索css文件。我一直在搜索,但似乎找不到一种简单的方法来使这个递归。有什么想法吗?

我目前正在使用$arr=glob(“主题/进化/*..css”);

包含css文件的示例文件夹结构如下。

代码语言:javascript
复制
Main Dir > Style.css
Main Dir > Folder 1 > mycss.css
Main Dir > Folder 2 > mycss.css
Main Dir > Folder 3 > mycss.css

代码语言:javascript
复制
//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>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-18 01:35:02

我在帮助下找到了答案。下面的代码将允许您使用上面的代码进行递归搜索。希望这能有所帮助。

代码语言:javascript
复制
$themedir = 'themes/Evolution';
$allFiles = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($themedir));
$cssFiles = new RegexIterator($allFiles, '/\.css$/i');

if(isset($_REQUEST['resetcolor'])){
$textboxdefaultcolorcode=$_POST['defaultcolor']; //added line

foreach($cssFiles as $cssFile=>$val){
	$str=file_get_contents($val);
			$str=str_replace($inicurrentcolor, $textboxdefaultcolorcode, $str); 
		file_put_contents($val, $str);
	}
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40073739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档