How To Get Base URL With PHP?
You can easily get base URL with PHP with few steps. Following function can be useful when you need base URL for instance to show correct images, load stylesheets and scripts.
<?php function home_base_url(){ // first get http protocol if http or https $base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']!='off') ? 'https://' : 'http://'; // get default website root directory $tmpURL = dirname(__FILE__); // when use dirname(__FILE__) will return value like this "C:\xampp\htdocs\my_website", //convert value to http url use string replace, // replace any backslashes to slash in this case use chr value "92" $tmpURL = str_replace(chr(92),'/',$tmpURL); // now replace any same string in $tmpURL value to null or '' // and will return value like /localhost/my_website/ or just /my_website/ $tmpURL = str_replace($_SERVER['DOCUMENT_ROOT'],'',$tmpURL); // delete any slash character in first and last of value $tmpURL = ltrim($tmpURL,'/'); $tmpURL = rtrim($tmpURL, '/'); // check again if we find any slash string in value then we can assume its local machine if (strpos($tmpURL,'/')){ // explode that value and take only first value $tmpURL = explode('/',$tmpURL); $tmpURL = $tmpURL[0]; } // now last steps // assign protocol in first value if ($tmpURL !== $_SERVER['HTTP_HOST']) // if protocol its http then like this $base_url .= $_SERVER['HTTP_HOST'].'/'.$tmpURL.'/'; else // else if protocol is https $base_url .= $tmpURL.'/'; // give return value return $base_url; } ?> // and test it echo home_base_url();Output will be like this
local machine : http://localhost/my_website/ or https://myhost/my_website public : http://www.my_website.com/ or https://www.my_website.com/use home_base_url function at index.php of your website and define it and then you can use this function to load script, css and content via url like
<?php echo '<script src="'.home_base_url().'js/script.js" type="text/javascript"></script>'."\n"; ?>will create output like this :
<script src="http://www.my_website.com/js/script.js" type="text/javascript"?></script>Source: http://stackoverflow.com/a/21723209
Comments
Post a Comment