上午在做一个需求时,需要利用 php 在后端获取页面的完整地址,以前不少做这样的需求所以记录了一些常用到的函数,就发表一下。有需要的拿去吧!

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

示例1

<?php
function getpageurl() {
    $pageURL = 'http';
    if(isset($_SERVER['HTTPS']) && $_SERVER["HTTPS"] == "on"){
        $pageURL .= "s";
    }
    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
    }else{
        $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    }
    return $pageURL;
}
?>

调用方法:

<?php
echo getpageurl();
?>

注意:

1、$_SERVER['HTTPS'] 变量在 HTTPS 链接的情况下, 一些个别的服务器环境中会返回 null,要特别注意一下 (以后会单独的出一篇博文讲一下)

2、上面的函数会返回完整的url地址,包括提交的参数。

示例2:

<?php
function get_url() {
    $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
    $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
    $path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
    $relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);
    return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
}
?>

php 获取当前页面的url地址不包括参数的方法教程

上面给出两个关于php获取页面完整url地址的函数,会将url中提交的参数也一并获取到,如果我们只单单的获取一个地址而不需要参数的话,可以参考下面的示例!

示例代码:

<?php
function getpageurl_t() {
    $pageURL = 'http';
    if(isset($_SERVER['HTTPS']) && $_SERVER["HTTPS"] == "on"){
        $pageURL .= "s";
    }
    $pageURL .= "://";
    $this_page = $_SERVER["REQUEST_URI"];
    //过滤要提交的参数
    if(strpos($this_page, "?") !== false){
        $this_pages = explode("?", $this_page);
        $this_page = reset($this_pages);
    }
    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $this_page;
    }else{
        $pageURL .= $_SERVER["SERVER_NAME"] . $this_page;
    }
    return $pageURL;
}
?>

函数调用:

<?php
echo getpageurl_t() ;
?>

php中其它关于获取url地址的操作方法

你可以参考下面 php 中关于对url地址的一些操作方法来实现自己的需求!

<?php
//测试网址:   http://localhost/blog/ss.php?id=10
//获取域名或主机地址
echo $_SERVER['HTTP_HOST']."<br>"; // localhost
//获取网页地址
echo $_SERVER['PHP_SELF']."<br>"; // blog/ss.php
 
//获取网址参数
echo $_SERVER["QUERY_STRING"]."<br>"; // id=10
 
//获取用户代理
echo $_SERVER['HTTP_REFERER']."<br>";
 
//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
// http://localhost/blog/ss.php?id=10
 
//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
// http://localhost:80/blog/ss.php?id=10
 
//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
// http://localhost/blog
?>