Re: Howto detect the hostname of the server?
| From: | Stuart Dallas | Date: | Sat, 26 Nov 2011 00:29:11 +0000 |
| Subject: | Re: Howto detect the hostname of the server? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-315812@lists.php.net to get a copy of this message | ||
On 26 Nov 2011, at 00:24, Stuart Dallas wrote:
> On 26 Nov 2011, at 00:14, Andreas wrote:
>> Hi,
>> how could I identify the server the script runs on?
>>
>> I've got a testserver on Windows and a remote system on Linux that need a couple of
>> different settings like IP and port of db-server or folder to store logfiles.
>>
>> I'd like to do something like:
>>
>> if ( $_SERVER['some_key'] = 'my_test_box' ) {
>> $db_host = '1.1.1.1';
>> $db_port = 1234;
>> } else {
>> $db_host = '2.2.2.2';
>> $db_port = 4321;
>> }
>>
>>
>> I looked into phpinfo() but haven't found anything helpful, yet.
>> Have I overlooked something or is there another way to identify the server?
>
> This should work on most Linux variants, so long as the hostname command exists and the PHP
> process has permission to execute it.
>
> function getServerHostname($full = false)
> {
> $retval =
hostname;
> if (!$full) {
> $retval = array_shift(explode('.', $retval));
> }
> return $retval;
> }
I should add that it would be better to put the server hostname into the environment in which PHP
runs. That way it will be available via the $_ENV superglobal and fetching it will not cost a
process execution. How you would do this depends on how you are running PHP.
-Stuart
--
Stuart Dallas
3ft9 Ltd
http://3ft9.com/