PHP将一个URL转换为完整URL(相对路径转绝对路径)

作者:enenba | 发表于:2012-03-14 16:36 | 分类:php源码

 这个是在网上找的将URL转化成完整的URL,说的真麻烦,应该是相对路径转绝对路径, 亲自撸过的也懂,貌似比《PHP采集链接,相对链接转为绝对链接》的效果好哦

 不多说,上代码

<?php
/**
 * 将一个URL转换为完整URL
 */
function format_url($srcurl, $baseurl) {
	$srcinfo = parse_url($srcurl);
	if (isset($srcinfo['scheme'])) {
		return $srcurl;
	} 
	$baseinfo = parse_url($baseurl);
	$url = $baseinfo['scheme'] . '://' . $baseinfo['host'];
	if (substr($srcinfo['path'], 0, 1) == '/') {
		$path = $srcinfo['path'];
	} else {
		$path = dirname($baseinfo['path']) . '/' . $srcinfo['path'];
	} 
	$rst = array();
	$path_array = explode('/', $path);
	if (!$path_array[0]) {
		$rst[] = '';
	} 
	foreach ($path_array AS $key => $dir) {
		if ($dir == '..') {
			if (end($rst) == '..') {
				$rst[] = '..';
			} elseif (!array_pop($rst)) {
				$rst[] = '..';
			} 
		} elseif ($dir && $dir != '.') {
			$rst[] = $dir;
		} 
	} 
	if (!end($path_array)) {
		$rst[] = '';
	} 
	$url .= implode('/', $rst);
	return str_replace('\\', '/', $url);
} 

$srcurl = '/guestbook.php';
$baseurl = 'http://www.msphome.cn/index.php/ddd.html';
echo format_url($srcurl, $baseurl);

?>

 

 

 

 

 

上一篇: PHP把全角数字转为半角数字   |   下一篇:JS解密函数function(p,a,c,k,e,d)» 标签: php函数 PHP正则

评论: