Skip to content

Instantly share code, notes, and snippets.

@rahman541
Last active August 30, 2019 19:06
Show Gist options
  • Save rahman541/1751515480f4450246fe6ef59a2d29ec to your computer and use it in GitHub Desktop.
Save rahman541/1751515480f4450246fe6ef59a2d29ec to your computer and use it in GitHub Desktop.
Common PHP helper function
/*
* Get base URL
* Credit to SpYk3HH
* Ref https://stackoverflow.com/questions/2820723/how-to-get-base-url-with-php
*/
if (!function_exists('base_url')) {
function base_url($atRoot=FALSE, $atCore=FALSE, $parse=FALSE){
if (isset($_SERVER['HTTP_HOST'])) {
$http = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http';
$hostname = $_SERVER['HTTP_HOST'];
$dir = str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$core = preg_split('@/@', str_replace($_SERVER['DOCUMENT_ROOT'], '', realpath(dirname(__FILE__))), NULL, PREG_SPLIT_NO_EMPTY);
$core = $core[0];
$tmplt = $atRoot ? ($atCore ? "%s://%s/%s/" : "%s://%s/") : ($atCore ? "%s://%s/%s/" : "%s://%s%s");
$end = $atRoot ? ($atCore ? $core : $hostname) : ($atCore ? $core : $dir);
$base_url = sprintf( $tmplt, $http, $hostname, $end );
}
else $base_url = 'http://localhost/';
if ($parse) {
$base_url = parse_url($base_url);
if (isset($base_url['path'])) if ($base_url['path'] == '/') $base_url['path'] = '';
}
return $base_url;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment