Get Full Url Address Using PHP

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.

$_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;
?>

Output

https://www.yourdomainname.com/index.php