在PHP中获取URL

时间:2011-02-17 06:28:45

标签: php

假设我当前的URLhttp://www.example.com/person/peter.html。如何使用PHP获取“http://www.example.com/person/”(只是排除“peter.html”)?

2 个答案:

答案 0 :(得分:1)

这不包括协议,但是是第一次尝试。

echo $_SERVER['HTTP_HOST'].
    pathinfo($_SERVER['REQUEST_URI'], PATHINFO_DIRNAME);

确定协议是什么可能会很棘手。方法包括:

  • 检查$ _SERVER ['HTTPS'],具体取决于网络服务器,以及是否使用了命名虚拟主机(未经验证)。如果不是https,Apache将不会设置该值,但是IIS将其设置为“off”
  • 检查$ _SERVER ['SERVER_PORT'],再次http不必在端口80上,并且https不必在端口443上。

答案 1 :(得分:0)

您可以使用$_SERVER超全局和一些工作

来完成此操作
$protocol = $_SERVER['HTTPS'] ? 'https://' : 'http://';
$host     = $_SERVER['HTTP_HOST'];
$pathInfo = pathinfo( $_SERVER['REQUEST_URI'] ); //returns an associative array
$dirname  = $pathInfo['dirname'];

$baseUrl = $protocol . $host . $dirname;

Docs on $_SERVER
Docs on pathinfo