$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);
- $スキーム = $url_parsed["スキーム"];if($scheme!=""){$scheme = $scheme."://";}
- $host = $url_parsed["ホスト"];
- $l3 = $スキーム.$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);
- //判断するtype
- 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(strto lower(substr($I1,0,7))=="mailto:"||strto lower(substr($I1,0,11))== javascript: "){
- return $l1;
- }else{
- $I1 = $l3.$path."/".$I1;
- }
- return str_replace($I2,""$I1"",$l1) ;
- }
- ?>
-
-
- コードをコピー
-
-
-
-
-