2010-02-25 4 views
2

Étant donné cette variable:URL Parse fonction

$variable = foo.com/bar/foo 

Quelle fonction équilibrerait variable $ à foo.com? Editer: Je voudrais que la fonction puisse couper n'importe quoi sur une URL qui pourrait venir après le nom de domaine.

Merci à l'avance,

John

Répondre

3

Travailler pour OP:

$host = parse_url($url, PHP_URL_HOST); 

La version de PHP que je dois travailler avec ne pas accepter deux paramètres (Zend Engine 1.3.0). Peu importe. Voici le code de travail pour moi - vous devez avoir le URL complète, y compris le régime (http: //). Si vous pouvez supposer que le schéma est http: // (et non https: // ou quelque chose d'autre), vous pouvez simplement le préfixer pour obtenir ce dont vous avez besoin.

de travail pour moi:

$url = 'http://foo.com/bar/foo'; 

$parts = parse_url($url); 
$host = $parts['host']; 

echo "The host is $host\n"; 
+0

Hmm ... ça ne marche pas pour moi. – John

+0

Quelle version? Les deux? –

+0

Le deuxième n'a pas fonctionné ... mais j'ai essayé le premier et il a fait, donc je vous ai donné le crédit pour la réponse. Merci! – John

0

J'utilise http://www.google.com/asdf dans mon exemple

Si vous êtes bien à obtenir le sous-domaine aussi bien, vous pourriez diviser par « // » et Prenez le 1er élément pour supprimer efficacement le protocole et obtenir www.google.com/asdf

Vous pouvez ensuite diviser par "/" et obtenir le 0e élément.

Cela semble moche. brainstorming Juste ici =)

0

Essayez ceci:

function getDomain($url) 
{ 
    if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE) 
    { 
     return false; 
    } 
    /*** get the url parts ***/ 
    $parts = parse_url($url); 
    /*** return the host domain ***/ 
    return $parts['scheme'].'://'.$parts['host']; 
} 

$variable = 'foo.com/bar/foo'; 
echo getDomain($variable); 
+0

pourquoi voter en bas s'il vous plaît .........? – Sarfraz

+0

Dunno si c'est pour ça, mais c'est trop compliqué pour avoir juste un hôte: P – casraf

+0

@henasraf: merci mais l'implémentation est à l'intérieur de la funtion, mais ça marche :) – Sarfraz

0

Vous pouvez utiliser la fonction parse_url de php, puis accéder à la valeur de la "hôte" pour obtenir le nom d'hôte