function cleanLinksImages($str, $prefix){
    $reg='/(<[^>]*)(src|href)+[ ]*=[ ]*(\"|\')[(\.+|\/)]+(.*)(\"|\')(.*?)/i';
$s0=$str;
    while(preg_match($reg,$s0)){
        $s0=preg_replace($reg,"$1 $2=$3".$prefix."$4$5$6",$s0);
    }
    $reg0='/<img(.*?)(src)=\"(file:|[\w{1-3}]:).*?>/i';
    $localFileFix0='/<a.*?href=\"(file:|[\w{1-3}]:).*?>(.*?)<\/a>/i';
    $str = preg_replace($reg0,"",$s0);
    $str = preg_replace($localFileFix0,'\2',$str);
    return $str;
}上面是我写的一个function,只要是想要把 某一个string里面的 <img>和<a> 标签中的link某些东西替换掉function randStr($num){
    $base=array('<img src="file:///a/b/c.jpg" alt="" />Image1<br />', //Image1<br />
                    '<img src="FIle:///a/ab/c.jpg" />Image2<br />',  //Image2< br />
                    '<img src="c://a/ab/c.jpg" />Image3<br />', //Image3<br />
                    '<img src="a/ab/c.jpg" />Image4<br />',//<img src="$prefix/a/ab/c.jpg" />Image4<br />
                    '<img src="/a/b/c.jpg"/>Image5<br />',//<img src="$prefix/a/b/v.jpg" />Image5<br />
                    '<img src="../../../files/a/b/c.jpg" />Image6<br />',//<img src="$prefix/files/a/b/c.jpg" />Image6<br />
                    '<img src="http://www.justfindu.com/find.png" />Image7<br />',//<img src="http://www.justfindu.com/find.png" />Image7<br />
                    '<img src="file:a/b/c.jpg" />Image8<br />',//Image8<br />
                    
                    '<a href="file://a/b/c.html">Link1</a><br />',
                    '<a href="FiLE://a/ab/c.html">Link2</a><br />',
                    '<a href="c://a/b/c.html">Link3</a><br />',
                    '<a href="a/b/c.html">Link4</a><br />',
                    '<a href="../../a/b/c.html">Link5</a><br />',
                    '<a href="/a/b/c.html">Link6</a><br />',
                    '<a href="http://www.abcd.com/a/b/c.html">Link7</a><br />',
                    '<a href="file:/a/b/c.html">Link8</a><br />',
                );
    
    $str='';
    for($i=0;$i<$num;$i++){
        $randNum=rand(0,time())%count($base)+1;
        $str.=$base[$randNum];
    }
    
    return $str;
}
这个function为了随机的生成几个段的sample string组合,
$base这个变量的里面是string元素,后面的注释是运行第一个function之后变成的结果.注释中的 $prefix是需要替换的url
<a>标签也是一样的判断
$testString1='<div class="cnm">'.randStr(5).'</div>';
$prefix='http://www.ooo.com/';
echo 'Test 1:<br />';
echo 'Old:<textarea cols="50" rows="12">'.$testString1.'</textarea>';
echo 'Changed:<textarea cols="50" rows="12">'.cleanLinksImages($testString1,$prefix).'</textarea>';
echo '<br />';$testString3='<table><tr><td>'.randStr(2).'</td><td>'.randStr(4).'</td></tr></table>';
echo 'Test 3:<br />';
echo 'Old:<textarea cols="50" rows="12">'.$testString3.'</textarea>';
echo 'Changed:<textarea cols="50" rows="12">'.cleanLinksImages($testString3,$prefix).'</textarea>';
echo '<br />';这样出来的结果应该是所有的file://  c:/之类的去掉留text,相对地址变成http://www.ooo.com/*****,本来是http://***地址的不变  
但是cleanLinksImages();有点问题求解决,问题是有些时候img标签这部分处理不好,而且会把后面部分东西一并删掉