Robert Cummings schreef:
On Tue, 2008-09-16 at 21:18 +0100, Nathan Rixham wrote:
Jim Lucas wrote:
Robert Cummings wrote:
On Tue, 2008-09-16 at 18:13 +0100, Nathan Rixham wrote:
I also meant:
define('PUBLIC_BASE_HREF' , 'http://php.net/')
<head>
<base href="<?php echo PUBLIC_BASE_HREF; ?>" />
</head>
and further thinking there has to be an easier / cleaner way of getting
"http://" / "https://" in php..
What's wrong with $_SERVER['HTTPS'] ?
Cheers,
Rob.
my way
<?php
function get_http_protocol() {
$proto = 'http';
if ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ) {
$proto .= 's';
}
return $proto . '://'; # Adding the :// is optionial
}
echo get_http_protocol();
?>
That is about as simple as you can get.
lol this one's got my brain going; here's mine:
<?php
function get_http_protocol() {
return 'http' . ($_SERVER['SERVER_PORT'] == 443 ? 's' : '') . '://';
}
echo get_http_protocol();
?>
Just because 443 is the default HTTPS port, doesn't mean HTTPS is being
served over 443, nor does it mean HTTPS isn't also being served over
another port. This is less effective than using $_SERVER['HTTPS'].
although I hazard to offer the following as more complete:
function get_http_protocol()
{
$proto = 'http';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) !== 'off') {
$proto .= 's';
}
return $proto . '://'; # Adding the :// is optionial
}
because if $_SERVER['HTTPS'] happens to be false (which I don't think it ever should be) it
would cause the return value to be 'https://' which I don't think would be correct in that case
(even thought the case is theoretical and likely to indicate an engine problem if it did occur)
Cheers,
Rob.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php