php 全文搜索和替换的实现代码

  <?php

  exec("/bin/grep -r '$oldword' $rootpath", $results, $errorCode);

  if ($errorCode){

  if ($errorCode == 1){

  echo "Possibly no files were found with ?$oldword in them<BR>\n";

  }

  echo "OS Error: $errorCode<BR>\n";

  echo "Check 'man errno' and count down<BR>\n";

  echo "Usually paths/permissions<BR>\n";

  }

  while (list(,$path) = each($results)){

  $parts = explode(':', $path);

  $path = $parts[0];

  $fp = fopen($path, 'r') or print("Cannot read $path<BR>\n");

  if ($fp){

  $data = fread($fp, filesize($path));

  fclose($fp);

  $newdata = str_replace($oldword, $newword, $data);

  $fp = fopen($path, 'w') or print("Cannot write $path<BR>\n");

  if ($fp){

  fwrite($fp, $newdata);

  fclose($fp);

  echo $path, "<BR>\n";

  }

  }

  }

  ?>