Re: Re: header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wouldn't it be nice if in the $_SERVER array you could get the whole URL
now that PHP has a parse_url function?

Thank you,
Micah Gersten
onShore Networks
Internal Developer
http://www.onshore.com



Jochem Maas wrote:
> 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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux