php url补全函数,PHP采集URL补全函数

写采集必用的函数,URL补全函数,也可叫做FormatUrl。

写此函数作用就是为了开发采集程序,采集文章的时候会经常遇到页面里的路径是 “相对路径” 或者 “绝对根路径” 不是“绝对全路径”就无法收集URL。

所以,就需要本功能函数进行对代码进行格式化,把所有的超链接都格式化一遍,这样就可以直接收集到正确的URL了。

路径知识普及

相对路径:“../” “./” 或者前面什么都不加

绝对根路径:/path/xxx.html

绝对全路径:http://www.xxx.com/path/xxx.html

使用实例:

首页大学排行‘;

echo formaturl($gethtm,$surl);

?>

输出:

首页大学排行

函数代码如下:

//判断类型

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 );

}

?>

最后编辑:2015-08-12作者:admin

64db420a8ae6dcfe9979c5baa13b763e.png

这个作者貌似有点懒,什么都没有留下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值