使用PHP将超链接的相对地址转换为绝对地址
2012-03-08 16:41
369 查看
前段时间在做网页内容自动采集时,读取到的源代码里常常是相对地址,而且文件深度各不相同,很伤脑筋.
今天定下心来编成了个函数,效果还不错,先发出来.希望还有更好的办法.
效果演示: http://guilyn.host.org/demo/url_real.php
今天定下心来编成了个函数,效果还不错,先发出来.希望还有更好的办法.
function url_real($base,$url=''){ if(preg_match("~^(magnet|thunder|flashget|[fht]+p):~",$url,$tmp)){ return $url; } $base=preg_replace("~/[^/]+\.\w+$~","",$base); $base=preg_replace("~^\s*http://|/\s*$~","",$base); $roads=preg_split("~/~",$base); $host=$roads[0]; if(preg_match("~^/~",$url,$tmp)){ return "$host$url"; } $up=preg_match_all("~(\.\./)~",$url,$tmp); $up=$up>0?$up:0; $roads=array_slice($roads,1); $keep=count($roads)-($up>count($roads)?count($roads):$up); $roads=array_slice($roads,0,$keep); $roads=implode("/",$roads); $paths=preg_replace("~^\./~","",$url); $paths=preg_split("~/~",$paths); $paths=array_slice($paths,$up,count($paths)-$up); $paths=implode("/",$paths); return "$host".($roads?"/$roads":"")."/$paths"; }
效果演示: http://guilyn.host.org/demo/url_real.php
相关文章推荐
- PHP采集程序中相对地址转换为绝对地址的函数
- 如何批量替换相对地址为绝对地址?PHP
- 使用jQuery mobile库检测url绝对地址和相对地址的方法
- JavaScript打开窗口函数(Window.Open)使用详解、绝对路径与相对路径的获取与转换
- JavaScript打开窗口函数(Window.Open)使用详解、绝对路径与相对路径的获取与转换(含ASP.NET)
- 如何批量替换相对地址为绝对地址?PHP
- 谈谈PHP中相对路径的问题与绝对路径的使用
- 插件21:把URL相对地址转换为绝对地址
- DefiniteUrl asp将相对地址转换为绝对地址的代码
- 把相对地址转换为绝对地址 seo
- JavaScript打开窗口函数(Window.Open)使用详解、绝对路径与相对路径的获取与转换(含ASP.NET)
- JavaScript将相对地址转换为绝对地址示例代码
- PHP将相对路径URL转换为绝对路径URL
- 用php正则判断url地址并自动转换为超链接
- JavaScript打开窗口函数(Window.Open)使用详解、绝对路径与相对路径的获取与转换(含ASP.NET)
- PHP中从相对地址返回绝对地址的函数
- DefiniteUrl asp将相对地址转换为绝对地址的代码
- JavaScript将相对地址转换为绝对地址
- 巧用Javascript将相对路径地址转换为绝对路径
- JavaScript打开窗口函数(Window.Open)使用详解、绝对路径与相对路径的获取与转换