getting current URL

前端 未结 2 1273
[愿得一人]
[愿得一人] 2020-11-28 11:34

I am using following code to get the current URL

$current_url = \"http://\".$_SERVER[\'HTTP_HOST\'].$_SERVER[\'REQUEST_URI\'];

Is there any

相关标签:
2条回答
  • 2020-11-28 11:51

    You have to be careful relying on server variables, and it depends what the webserver wants to give you... Here's a fairly failsafe way to get the URL.

    $url = '';
    
    if (isset($_SERVER['HTTPS']) && filter_var($_SERVER['HTTPS'], FILTER_VALIDATE_BOOLEAN))
        $url .= 'https';
    else
        $url .= 'http';
    
    $url .= '://';
    
    if (isset($_SERVER['HTTP_HOST']))
        $url .= $_SERVER['HTTP_HOST'];
    elseif (isset($_SERVER['SERVER_NAME']))
        $url .= $_SERVER['SERVER_NAME'];
    else
        trigger_error ('Could not get URL from $_SERVER vars');
    
    
    if ($_SERVER['SERVER_PORT'] != '80')
      $url .= ':'.$_SERVER["SERVER_PORT"];
    
    if (isset($_SERVER['REQUEST_URI']))
        $url .= $_SERVER['REQUEST_URI'];
    elseif (isset($_SERVER['PHP_SELF']))
        $url .= $_SERVER['PHP_SELF'];
    elseif (isset($_SERVER['REDIRECT_URL']))
        $url .= $_SERVER['REDIRECT_URL'];
    else
        trigger_error ('Could not get URL from $_SERVER vars');
    
    echo $url;
    
    0 讨论(0)
  • 2020-11-28 11:54

    From the reference:

    <?php
    
    function curPageURL() {
        $pageURL = 'http';
    
        if ($_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;
    }
    ?>
    
    0 讨论(0)
提交回复
热议问题