domeinnaam uitelkaar halen en domeinnaam + extentie eruit filteren

Status
Niet open voor verdere reacties.

gertjuhhh1993

Gebruiker
Lid geworden
21 jun 2010
Berichten
127
Beste mensen,

Zie dit voorbeeld:
PHP:
$url = 'http://usa.en.example.co.uk';

$parsedUrl = parse_url($url);

$host = explode('.', $parsedUrl['host']);

$subdomains = array_slice($host, 0, count($host));
print_r($subdomains);

Output:
HTML:
Array
(
    [0] => usa
    [1] => en
    [2] => example
    [3] => co
    [4] => uk
)
hoe kan ik nu alleen de domeinnaam+extentie selecteren.(example.co.uk)??
bij deze is het
PHP:
$url2 = $subdomains['2'].".".$subdomains['3'].".".$subdomains['4'];

maar als ik maar 1 subdomein of extentie heb klopt dit weer niet. dus wat moet ik doen om met 1 en dezelfde code, meerdere subdomeinen en extenties af te vangen en uiteindelijk alleen domeinnaam.extentie terug te krijgen?
 
Nee, als je parse_url op de voorbeeld-URL los laat komt er gewoon usa.en.example.co.uk uit.* Ik zou niet direct een universele oplossing weten voor dit probleem.

*voorbeeld.
 
wat naarling zei
parse_url deelt de url wel op maar dan heb ik de hele host. dus (usa.en.example.co.uk) ik wil alleen example.co.uk hebben.

heb et inmiddels opgelost bedankt voor de moeite:)

hieronder de code voor de geintereseerde
PHP:
  $url = 'http://usa.en.example.co.uk/test/test2.php';

$parsedUrl = parse_url($url);

// $host = explode('.', $parsedUrl['host']);

// $subdomains = array_slice($host, 0, count($host));
// print_r($subdomains);


    echo extract_domain($parsedUrl['host']);


function extract_domain($domain)
{
    if(preg_match("/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i", $domain, $matches))
    {
        return $matches['domain'];
    } else {
        return $domain;
    }
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan