在网站后台设计时,有时候因为项目要求,需要获取当前网页的url地址。php中获取url地址,以url中各个参数的方法有很多,那么接下来就来说一说,php中如何获取url地址,以及url中包含的其它参数的方法。
php 获取当前页面的url地址的方法
测试网址
http://domAIn.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) "domain.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']; ?>
输出结果:
domain.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://domain.com/c.php?id=3