在网站后台设计时,有时候因为项目要求,需要获取当前网页的url地址。php中获取url地址,以url中各个参数的方法有很多,那么接下来就来说一说,php中如何获取url地址,以及url中包含的其它参数的方法。

php 获取当前页面的url地址的方法

测试网址

http://feiniaomy.com/c.php?id=3

php获取当前网页的网址,需要用到超全局变量 $_SERVER,所以我们,先来打印一下。

php代码

<?php
var_dump($_SERVER);
?>

打印结果:

array(34) {
  ["QUERY_STRING"]=>
  string(4) "id=3"
  ["PHP_SELF"]=>
  string(6) "/c.php"
  ["HTTP_HOST"]=>
  string(13) "feiniaomy.com"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["REQUEST_URI"]=>
  string(11) "/c.php?id=3"
  ["REQUEST_SCHEME"]=>
  string(4) "http"
  .....
}

通过上面的打印结果,可以发现 $_SERVER 超全局变量是一个包含有url地址,url参数,网页的路径等肉容的数组。我们可以像平时操作数组一样,从 $_SERVER 变量中提取所需要的信息

php获取主域名

<?php
echo $_SERVER['HTTP_HOST'];
?>

输出结果:

feiniaomy.com

php获取当前页面的网页地址

<?php
echo $_SERVER['PHP_SELF'];
?>

输出结果:

/c.php

php获取当前页面url的参数

<?php
echo $_SERVER["QUERY_STRING"];
?>

输出结果:

id=3

php获取端口号

<?php
echo $_SERVER["SERVER_PORT"];
?>

输出结果:80

php获取当页网址的完整的url

上面的示例中,介绍了php获取url中的各个参数的方法,下面的示例是获取当前页面的完整的url地址的自定义函数。

函数代码:

<?php
function GetPageUrl(){
    // 判断是否https
    $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://": "http://";
    //组合url
    $url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    return $url;
}
?>

函数调用方法:

<?php
echo GetPageUrl();
?>

输出结果:

http://feiniaomy.com/c.php?id=3