php添加超链接到html,html - php怎么获取页面上的超链接并补齐成全地址?

curl获取一个网站解析其中的a标签会得到链接,有的会是http:// 这样完整的,有的会是/about,../about相对的,有的是#,javascript之类的,怎么将匹配的链接全部补齐为完整链接(域名加相对的),锚点和js的排除掉?

回复内容:

curl获取一个网站解析其中的a标签会得到链接,有的会是http:// 这样完整的,有的会是/about,../about相对的,有的是#,javascript之类的,怎么将匹配的链接全部补齐为完整链接(域名加相对的),锚点和js的排除掉?

自己写个方法计算就行了。例如请求 http://example.com/qa/list.php, 其中主机地址是 http://example.com, 目录地址是 http://example.com/qa/

如果地址是 http(s)://开头,完整地址

如果地址是/开头, 如 /aboutus,完整地址是主机地址+该地址,即 http://example.com/aboutus

如果地址是其它开头,如 ../aboutus, 完整地址是目录地址+该地址,即 http://example.com/qa/../aboutus

如果你觉得../很碍眼,可以自己整理一下,每个../抵消一级父目录,变成 http://example.com/aboutus

/**

* 返回当前请求的完整URL

*

* @return string

*/

function current_url()

{

$host = $_SERVER['HTTP_HOST'];

$uri = $_SERVER['REQUEST_URI'];

return (is_https() ? 'https://' : 'http://') . $host . $uri;

}

好吧,看错题目了。。。

关于处理相对路径的问题可以参考我之前写过的一篇文章:http://blog.icewingcc.com/php-conv-addr-re-ab-2.html

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值