Get Full Url Address Using PHP with the help of two main elements $_SERVER['HTTP_HOST'] and $_SERVER['REQUEST_URI'] of super global PHP variable $_SERVER.
Table of Contents
$_SERVER['HTTP_HOST']
$_SERVER['HTTP_HOST'] returns the host header or domain name of the current request, for example www.howtocodeschool.com or www.google.com, etc.
$_SERVER['REQUEST_URI']
$_SERVER['REQUEST_URI'] contains the URI of current page. For example if the current url is https://www.yourdomainname.com/index.php then the $_SERVER['REQUEST_URI'] would contain /index.php.
Code
So, to get the complete url of the current page we will simply concatenate the two variables $_SERVER['HTTP_HOST'] and $_SERVER['REQUEST_URI'] with symbol "://" and either "https" or "http".
With HTTP
<?php
$url="http"."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;
?>
With HTTPS
<?php
$url="https"."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;
?>
HTTP or HTTPS
Whether to use HTTP or HTTPS depends on the value of global variable $_SERVER[‘HTTPS’], if $_SERVER[‘HTTPS’] is set and it's value is 'on' then we will concatenate HTTPS otherwise HTTP should be concatenated, look at the code given below.
<?php
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')
{
$url="https"."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
else
{
$url="http"."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
echo $url;
?>