【问题标题】:How to retrieve the URL of a page using PHP?如何使用 PHP 检索页面的 URL?
【发布时间】:2011-01-06 04:18:49
【问题描述】:

这里的新手问题,是否有任何内置的 PHP 标记可用于检索页面的 URL 并在屏幕上回显它?

谢谢。

【问题讨论】:

标签: php url


【解决方案1】:

回显当前页面的 URL。

$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
if ($_SERVER["SERVER_PORT"] != "80")
{
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} 
else 
{
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
echo $pageURL;

【讨论】:

  • +1 非常简洁。 @OP:您可以使用print_r($_SERVER); 查看所有可用的服务器变量(端口、各种URI、请求标头和语言等)并查看输出的源代码。
  • 这实际上是 Google 用来查找其页面 url 的代码。
  • 谢谢Chacha,这行得通。我认为可能有一些类似于 php_info 的内置标签,因为这似乎是一个非常标准的任务,但显然不是。
  • 如果$_SERVER["HTTPS"] == "on",我相信你可以使用$_SERVER["SCRIPT_URI"] 并得到整个东西。还是仅使用 Apache?
  • 有人回答这个问题:stackoverflow.com/questions/717874/… 有问题。
【解决方案2】:

如果您的网络服务器在标准端口(HTTP 为 80 或 HTTPS 为 443)上运行,则可以:

getservbyport($_SERVER['SERVER_PORT'], 'tcp') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']

【讨论】:

    【解决方案3】:

    看看$_Server 变量。具体来说,您可能需要 REQUEST_URI 值。

    【讨论】:

      【解决方案4】:
      $base_url = _SERVER["HTTP_HOST"];
      $url_path = _SERVER["REQUEST_URI"];
      
      echo $base_url.$url_path;
      

      假设请求的页面是http://sample.org/test.php,你会得到:

       sample.org/test.php
      

      您必须添加更多 $_SERVER 变量才能获得方案 (http://)。 REQUEST_URI 还保留任何 GET 变量不变,所以如果页面请求是 http://sample.org/test.php?stuff=junk,你会得到:

       sample.org/test.php?stuff=junk
      

      如果您不想这样做,请使用 $_SERVER['PHP_SELF'] 而不是 REQUEST_URI

      如果您想要一种非常简单的方法来查看可用的全局变量,请创建一个包含以下内容的页面:

      <?php
      
      phpinfo();
      
      ?>
      

      并将该脚本放在您感兴趣的任何目录中。您不仅会看到各种简洁的信息,还会看到各种因素,例如 HTTPHTTPSmod_rewrite,甚至 Apache 与 IIS 可以不同地设置一些全局变量或根本不设置一些全局变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-31
        • 1970-01-01
        • 1970-01-01
        • 2012-03-11
        • 1970-01-01
        相关资源
        最近更新 更多