PHP采集链接,相对链接转为绝对链接

 

<?php
/*===================================================================*\
	Function:	_expandlinks
	Purpose:	expand each link into a fully qualified URL
	Input:		$links			the links to qualify
				$URI			the full URI to get the base from
	Output:		$expandedLinks	the expanded links
\*===================================================================*/
function _expandlinks($links,$URI)
{
	$URI_PARTS = parse_url($URI);
	$host = $URI_PARTS["host"];
	preg_match("/^[^\?]+/",$URI,$match);

	$match = preg_replace("|/[^\/\.]+\.[^\/\.]+$|","",$match[0]);
	$match = preg_replace("|/$|","",$match);
	$match_part = parse_url($match);
	$match_root =
	$match_part["scheme"]."://".$match_part["host"];
			
	$search = array( 	"|^http://".preg_quote($host)."|i",
						"|^(\/)|i",
						"|^(?!http://)(?!mailto:)|i",
						"|/\./|",
						"|/[^\/]+/\.\./|"
					);
					
	$replace = array(	"",
						$match_root."/",
						$match."/",
						"/",
						"/"
					);			
			
	$expandedLinks = preg_replace($search,$replace,$links);

	return $expandedLinks;
}

//以下是测试内容
$r = _expandlinks('asd/asd.html','http://enenba.com/');
echo $r;
//output http://enenba.com/asd/asd.html

echo '<br />';

$r = _expandlinks('http://enenba.com/asd.html','http://enenba.com/');
echo $r;
//output http://enenba.com/asd.html

echo '<br />';

$r = _expandlinks('asd.html','http://enenba.com:8080/');
echo $r;
//output http://enenba.com:8080/asd.html

?>

 

 

原文连接: http://enenba.com/caiji/101.html

已有 14 条评论
  1. EnEnBa

    此文好熟悉啊~~~不用谢我啦

    EnEnBa 回复
    1. 枫叶红秋雨

      @EnEnBa

      @EnEnBa 哈哈。这个本来就是你得!

      枫叶红秋雨 回复
    2. 枫叶红秋雨

      @EnEnBa

      @EnEnBa 哈哈。这个本来就是你得!

      枫叶红秋雨 回复
    3. 枫叶红秋雨

      @EnEnBa

      @EnEnBa 哈哈。这个本来就是你得!

      枫叶红秋雨 回复
    4. 枫叶红秋雨

      @EnEnBa

      @EnEnBa 哈哈。这个本来就是你得!

      枫叶红秋雨 回复
  2. 色影集

    代码,看不懂唉。

    色影集 回复
  3. Godaddy 优惠码

    学习来了

    Godaddy 优惠码 回复
  4. 爱音族

    网上有很多已经做好的采集程序吧。

    爱音族 回复
    1. 枫叶红秋雨

      @爱音族

      @爱音族 恩。很多!不过这个有时候还是不错的!

      枫叶红秋雨 回复
  5. 羽逍思

    懂的人,不看白不看,不懂的人,看了也白看

    羽逍思 回复
  6. 美国骆驼

    唉,小白路过

    美国骆驼 回复
  7. 特爱博客

    记录还是分享?
    期待下次的分享可以详细点。{smile:5}

    特爱博客 回复
  8. 北京婚纱摄影

    呀呀 呀 呀 呀 完全看不懂呀

    北京婚纱摄影 回复
  9. 淘宝网女鞋

    我是来抢沙发的。。

    淘宝网女鞋 回复
发表新评论