Многострочный поиск и замена в файлах

Многострочный поиск и замена в файлах

Многострочный поиск и замена в файлах

Как-то понадобилось заменить один многострочный блок на другой в 17 тыс файлах.
DreamWeather умер на первых 500. А приведенный ниже скриптик все сделал быстро
и оперативно.

  1. <?
  2. $old="\r\n"; // что заменям
  3. $new=","; // на что заменяем
  4. $ext=".htm"; // Задает расширение файлов, в которых
  5. // будет производится замена
  6.  
  7. $d = dir(".");
  8. while($entry=$d->read()) {
  9. if (strpos($entry,$ext)!=0) {
  10. $fp=fopen($entry,"rt");
  11. $txt="";
  12. while (!feof($fp)) {
  13. $str=fgets($fp,65536);
  14. $txt=$txt.$str;
  15. }
  16. fclose($fp);
  17. $txt=str_replace("\n","\r",$txt);
  18. $txt=str_replace($old,$new,$txt);
  19. $fw=fopen("tmp.tmp","wt");
  20. fputs($fw,$txt);
  21. fclose($fw);
  22. unlink($entry);
  23. rename("tmp.tmp",$entry);
  24. print $entry."\n";
  25. }
  26. }
  27. $d->close();
  28. ?>

Download this code: replace.phps

Комментарии