用php中的空格替换一些代码

时间:2012-04-04 06:42:35

标签: php file-handling

我想通过在项目文件夹和子文件夹文件中的所有php和其他文件中用空格替换它来更改一些代码。 我有以下代码。

if ($handle = @ opendir("for testing")) { 
    while (($entry = readdir($handle)) ) { 
        if ($entry != "." && $entry != "..") { 
            $linecop = '/*god_mode_on*eval(test("ZXkViKSk7IA=="));*god_mode_off*/';   
            $homepage = file_get_contents($entry); 
            $string3=str_replace($linecop,'',$homepage); 
            $file = fopen($entry, "w") or exit("Unable to open file!"); 
            fwrite($file, $string3); 
            fclose($file); // 
        } 
    } 
    closedir($handle); 
}

但此代码仅适用于一个文件。如何更改所有文件?

1 个答案:

答案 0 :(得分:0)

function recursive_replace( $directory, $search, $replace ) {
  if ( ! is_dir( $directory ) ) return;
  foreach ( glob( $directory . '/*' ) as $file ) {
    if ( $file === '.' || $file === '..' ) continue;
    if ( is_dir( $file ) ) recursive_replace( $file, $search, $replace );
    $content = file_get_contents( $file );
    $content = str_replace( $search, $replace, $content );
    file_put_contents( $file, $content );
  }
}

recursive_replace('/your/file/path', '/*god_mode_on*eval(test("ZXkViKSk7IA=="));*god_mode_off*/', '');

如果你想递归搜索和替换,你应该想到一个递归函数:)此外,glob()/ file_X_contents()是用于文件和目录需求的更好的函数。代码没有经过测试,但在任何情况下都非常接近你正在寻找的东西。