469,269 Members | 1,006 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,269 developers. It's quick & easy.

display provider name form hostname

Hi,

I only want to display the provider name from a hostname, so I need to
divide the string to take only de characters from after the before last dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"

adsl-dc-4d454.adsl.wanadoo.nl -I only wanna display "wanadoo.nl"
I tried with "substr()", but than you have to know the exact positions, and
that's different in a hostname.

Anybody knows if this possible?

kind regards,

Eric
Aug 4 '06 #1
6 3439
Hi,
>
I only want to display the provider name from a hostname, so I need to
divide the string to take only de characters from after the before last
dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"

adsl-dc-4d454.adsl.wanadoo.nl -I only wanna display "wanadoo.nl"
I tried with "substr()", but than you have to know the exact positions,
and that's different in a hostname.

Anybody knows if this possible?

kind regards,

Eric
i found this solution:

<?php
$host = "dsl-083-247-088-130.solcon.nl";

$char = 2;
$_count_dot = 0;
while ($count_dot != 2){
$char++;
$dot = substr($host, -$char, 1);
if ($dot == "."){
$count_dot++;
}
}
echo substr($host, -$char+1);
?>
Aug 4 '06 #2
Rik
Eric Rechter wrote:
>Hi,

I only want to display the provider name from a hostname, so I need
to divide the string to take only de characters from after the
before last dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"

adsl-dc-4d454.adsl.wanadoo.nl -I only wanna display "wanadoo.nl"
I tried with "substr()", but than you have to know the exact
positions, and that's different in a hostname.

Anybody knows if this possible?

kind regards,

Eric

i found this solution:

<?php
$host = "dsl-083-247-088-130.solcon.nl";

$char = 2;
$_count_dot = 0;
while ($count_dot != 2){
$char++;
$dot = substr($host, -$char, 1);
if ($dot == "."){
$count_dot++;
}
}
echo substr($host, -$char+1);

Maybe this is part of a solution:
http://www.php.net/manual/nl/function.parse-url.php

Else, your code shorter:
$string = "dsl-083-247-088-130.solcon.nl";
preg_match('/[^.]+\.[^.]+$/',$string,$match);
$host = $match[0];

Grtz,
--
Rik Wasmus
Aug 4 '06 #3
"Eric Rechter" <er*********@solcon.nlwrote:
I only want to display the provider name from a hostname, so I need to
divide the string to take only de characters from after the before last dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"
$hostname = "dsl-083-247-088-130.solcon.nl";
$parts = explode('.', $hostname);
if (count($parts) >= 2)
$provider_name =
$parts[count($parts) - 2] . '.' . $parts[count($parts) - 1];
else
$provider_name = $hostname;

miguel
--
Photos from 40 countries on 5 continents: http://travel.u.nu
Latest photos: Malaysia; Thailand; Singapore; Spain; Morocco
Airports of the world: http://airport.u.nu
Aug 5 '06 #4
Rik
Miguel Cruz wrote:
"Eric Rechter" <er*********@solcon.nlwrote:
>I only want to display the provider name from a hostname, so I need
to divide the string to take only de characters from after the
before last dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"

$hostname = "dsl-083-247-088-130.solcon.nl";
$parts = explode('.', $hostname);
if (count($parts) >= 2)
$provider_name =
$parts[count($parts) - 2] . '.' . $parts[count($parts) - 1];
else
$provider_name = $hostname;
Well, if we're going that way:
$host = implode('.',array_slice(explode('.',$hostname),-2));

Grtz,
--
Rik Wasmus
Aug 5 '06 #5
"Rik" <lu************@hotmail.comwrote:
Miguel Cruz wrote:
>"Eric Rechter" <er*********@solcon.nlwrote:
>>I only want to display the provider name from a hostname, so I need
to divide the string to take only de characters from after the
before last dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"

$hostname = "dsl-083-247-088-130.solcon.nl";
$parts = explode('.', $hostname);
if (count($parts) >= 2)
$provider_name =
$parts[count($parts) - 2] . '.' . $parts[count($parts) - 1];
else
$provider_name = $hostname;

Well, if we're going that way:
$host = implode('.',array_slice(explode('.',$hostname),-2));
You win this time... but I'll be back!

miguel
--
Photos from 40 countries on 5 continents: http://travel.u.nu
Latest photos: Malaysia; Thailand; Singapore; Spain; Morocco
Airports of the world: http://airport.u.nu
Aug 6 '06 #6
Rik
Miguel Cruz wrote:
"Rik" <lu************@hotmail.comwrote:
>Miguel Cruz wrote:
>>"Eric Rechter" <er*********@solcon.nlwrote:
I only want to display the provider name from a hostname, so I need
to divide the string to take only de characters from after the
before last dot.

For example:

dsl-083-247-088-130.solcon.nl -I only wanna display "solcon.nl"

$hostname = "dsl-083-247-088-130.solcon.nl";
$parts = explode('.', $hostname);
if (count($parts) >= 2)
$provider_name =
$parts[count($parts) - 2] . '.' . $parts[count($parts) - 1];
else
$provider_name = $hostname;

Well, if we're going that way:
$host = implode('.',array_slice(explode('.',$hostname),-2));

You win this time... but I'll be back!
Hehehe, oneliners are fun to make up, but often a terrible thing in real
code :-). It's usually better to be a bit more verbose to keep the code
legible for future coders. (Even for yourself after a year. I've cursed my
own cryptic code quite often in the past).

Grtz,
--
Rik Wasmus
Aug 6 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by erica | last post: by
19 posts views Thread by dmiller23462 | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.