Многострочный поиск и замена в файлах
Как-то понадобилось заменить один многострочный блок на другой в 17 тыс файлах.
DreamWeather умер на первых 500. А приведенный ниже скриптик все сделал быстро
и оперативно.
<?
$old="\r\n"; // что заменям
$new=","; // на что заменяем
$ext=".htm"; // Задает расширение файлов, в которых
// будет производится замена
$d = dir(".");
while($entry=$d->read()) {
if (strpos($entry,$ext)!=0) {
$fp=fopen($entry,"rt");
$txt="";
while (!feof($fp)) {
$str=fgets($fp,65536);
$txt=$txt.$str;
}
fclose($fp);
$txt=str_replace("\n","\r",$txt);
$txt=str_replace($old,$new,$txt);
$fw=fopen("tmp.tmp","wt");
fputs($fw,$txt);
fclose($fw);
unlink($entry);
rename("tmp.tmp",$entry);
print $entry."\n";
}
}
$d->close();
?>
Download this code: replace.phps
Комментарии