$surl="http://bbs.it-home.org/"; $gethtm = '首页解决方案'; echo formaturl($gethtm,$surl); ?> 复制代码 输出:首页解决方案 --------- 演示实例 ------------ 原始路径代码:http://www.newnew.cn/newnewindex.aspx 输出演示代码:http://www.maifp.com/aaa/test.php 函数代码: function formaturl($l1,$l2){ if (preg_match_all("/(]+src=\"([^\"]+)\"[^>]*>)|(]+href=\"([^\"]+)\"[^>]*>)|(]+src='([^']+)'[^>]*>)|(]+href='([^']+)'[^>]*>)/i",$l1,$regs)){foreach($regs[0] as $num => $url){ $l1 = str_replace($url,lIIIIl($url,$l2),$l1); } } return $l1; } function lIIIIl($l1,$l2){ if(preg_match("/(.*)(href|src)\=(.+?)( |\/\>|\>).*/i",$l1,$regs)){$I2 = $regs[3];} if(strlen($I2)>0){ $I1 = str_replace(chr(34),"",$I2); $I1 = str_replace(chr(39),"",$I1); }else{return $l1;} $url_parsed = parse_url($l2); $scheme = $url_parsed["scheme"];if($scheme!=""){$scheme = $scheme."://";} $host = $url_parsed["host"]; $l3 = $scheme.$host; if(strlen($l3)==0){return $l1;} $path = dirname($url_parsed["path"]);if($path[0]=="\\"){$path="";} $pos = strpos($I1,"#"); if($pos>0) $I1 = substr($I1,0,$pos); //判断类型 if(preg_match("/^(http|https|ftp):(\/\/|\\\\)(([\w\/\\\+\-~`@:%])+\.)+([\w\/\\\.\=\?\+\-~`@\':!%#]|(&)|&)+/i",$I1)){return $l1; }//http开头的url类型要跳过 elseif($I1[0]=="/"){$I1 = $l3.$I1;}//绝对路径 elseif(substr($I1,0,3)=="../"){//相对路径 while(substr($I1,0,3)=="../"){ $I1 = substr($I1,strlen($I1)-(strlen($I1)-3),strlen($I1)-3); if(strlen($path)>0){ $path = dirname($path); } } $I1 = $l3.$path."/".$I1; } elseif(substr($I1,0,2)=="./"){ $I1 = $l3.$path.substr($I1,strlen($I1)-(strlen($I1)-1),strlen($I1)-1); } elseif(strtolower(substr($I1,0,7))=="mailto:"||strtolower(substr($I1,0,11))=="javascript:"){ return $l1; }else{ $I1 = $l3.$path."/".$I1; } return str_replace($I2,"\"$I1\"",$l1); } ?> 复制代码