163K网站系统官方论坛's Archiver

future 发表于 2007-2-13 10:21

全文搜索和替换

[size=3]<?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";  
}  
}  
}  
?>  
example  
http://yourserver.com/globalreplace.php?oldword=test&newword=text&rootpath=/path/to/dir  




[/size]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.