【问题标题】:PHP: Get base URL of a pagePHP:获取页面的基本 URL
【发布时间】:2017-02-02 17:24:36
【问题描述】:

场景:

用户添加了URL(如下面的URLs。我想返回出现在href 属性中的页面上的所有链接。我可以使用DOMDocument 类获取所有链接。但有些链接是相对的。我想将它们转换为绝对链接。


我的问题:

假设我有这些字符串 (URLs)(用户可以发送任何链接。比如 其中一个

http://example.com/test/index.html
http://example.com/test/test.php
http://example.com/test/
http://example.com/test

现在我得到用户输入URLhref 的所有内容。其中一些 URLs 是相对的,因此我必须将这些相对链接合并到基础 URL我的问题是我无法获取基本 URL。 在此示例中,我的基本 URL 将是 http://example.com/test。因此,如果用户输入上面的任何URLs,我必须得到相同的基数URL

如何正确提取 URL 库?

【问题讨论】:

  • 看看这个:link
  • 没有。 $_SERVER['HTTP_HOST'] 返回当前的 php 主机。我不想要这个。我想从一个字符串中获取。
  • 如果test 是您的脚本根目录并且您尚未在常量中定义它,那么请考虑这样做。
  • 字符串从何而来?也许你可以只检查最短的字符串?
  • @RST 它们来自用户输入。用户输入一个 URL,我想获取所有 href 链接。包括相对链接。当然,我需要将它们转换为绝对路径。

标签: php url path


【解决方案1】:

你可以像下面这样使用 parse_url 方法:

<?php 
    $url = 'http://example.com/test';
    //get base url from link
    $base_url=parse_url($url, PHP_URL_HOST);
    //get path from link
    $path=parse_url($url, PHP_URL_PATH);
    //print base_url
    echo 'Base URL = '.$base_url;
    //print path
    echo ' PATH = '.$path;
 ?>

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多