cari

Rumah  >  Soal Jawab  >  teks badan

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

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

高洛峰高洛峰2834 hari yang lalu766

membalas semua(2)saya akan balas

  • 高洛峰

    高洛峰2017-04-10 17:34:02

    自己写个方法计算就行了。例如请求 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

    balas
    0
  • 迷茫

    迷茫2017-04-10 17:34:02

    /**
     * 返回当前请求的完整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

    balas
    0
  • Batalbalas