Помогите с PHP (файлы в подпапках)

T
На сайте с 28.06.2007
Offline
82
1396

Есть папка в ней есть ещё папки (подпапки) и файлы. В других подпапках тоже содержатся папки и файлы...

Нужно во всех файлах всех подпапок заменить кавычки...

Т.е. указать папку скрипту, а он сам найдёт все файлы во всех подпапках и произведёт замены.

Написал скрипт который делает замены без поиска подпапок:

<?php 

@set_time_limit(0);
$mask='*.*'; // маска имён файлов
$files=glob($mask);
foreach ($files as $file) {
if (!is_file($file)) continue;
if ($file=="code.php") {} \\ В этом файле замен производить не требуется
elseif ($file=="cod.php") {} \\ В этом файле замен производить не требуется название самого скрипта...
elseif ($file=="index.php") {} \\ В этом файле замен производить не требуется
else {
$fp=fopen($file, 'r+');
$data=fread($fp, filesize($file));
fclose($fp);
$data=str_replace("»", "", $data);
$data=str_replace("«", "", $data);
$data=str_replace("–", "", $data);
$fpe=fopen($file, 'w');
fwrite($fpe, $data);
fclose($fpe);

}
}
?>

За код не ругайте, понимаю что можно его сократить, но мне важен результат, а не скорость работы скрипта.

[Удален]
#1


function replace($dir,$mask='*',$exclude=NULL)
{
$files=glob($dir.$mask)
if (!is_array($exclude)) $exclude=array();
foreach ($files as $file)
{
if (array_search(basename($file),$exclude)!==FALSE)
continue;
if (is_dir($file))
replace($dir,$mask,$exclude);
else
if (is_file($file))
file_put_contents($file,
str_replace(
array('"','другие кавычки'),
'',
file_get_contents($file)
)
)
}
}

replace("./","*",array('index.php','cod.php','code.php'));

и ваще это лучше на баше сделать

T
На сайте с 28.06.2007
Offline
82
#2

Немного похимичил, пару точек с запятой поставил, работает. :)

Спасибо огромное!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий