2016-05-03 2 views
0

Ich bin eine URL aus einem Formular bekommen, auf diese Weise:eine bestimmte URL zu ändern nur die Domain zurückkehren

$input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None'; 

Ich brauche einen nackten Domain-Namen zurück (für einige API-Integration), zum Beispiel : http://www.example.com kehrt als example.com und www.example.com kehrt example.com usw.

ich jetzt diesen Code haben, dass retu rns die korrekte URL für den ersten Fall http://www.example.com gibt aber nichts für www.example.com oder sogar example.com:

function get_domain($url) 
{ 
    $pieces = parse_url($url); 
    $domain = isset($pieces['host']) ? $pieces['host'] : ''; 
    if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) { 
     return $regs['domain']; 
    } 
    return false; 
} 

Können Sie Ratschläge zu diesem Thema bitte?

Antwort

0

ich am Ende etwas zu tun, ein bisschen anders - zu überprüfen, ob es http ist und wenn nicht, ich hinzufüge es mit dieser Funktion:

function addHttp($website) { 
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { 
     $url = "http://" . $url; 
    } 
    return $website; 
} 

und erst dann schicke ich es meine andere Funktion, die die Domain zurückgibt. Sicherlich nicht der beste Weg, aber es funktioniert.

2

Wie pro Gespräch mit Ihnen:

$url = 'www.noamddd.com'; 
$arrUrl = explode("/", $url); 
echo $arrUrl[0]; 

Alter Antwort:

Machen Sie eine Funktion mit dem folgenden Code-Block und den Domain-Namen erhalten.

Versuchen Sie, diese

mehr über parse_url

$url = 'http://google.com/dhasjkdas/sadsdds/sdda/sdads.html'; 
$parse = parse_url($url); 
print $parse['host']; //google.com 

Auch Sie dies auf eine andere Weise tun können:

echo $domain = str_ireplace('www.', '', parse_url($url, PHP_URL_HOST));//google.com 
+0

danke. iv'e änderte den Code, um diese "Code" -Funktion zu sein. get_domain ($ url) { $ parse = parse_url ($ url); return $ parse ['host']; } $ webSite = get_domain ($ input_website); "Code" aber es kommt wieder leer leer. –

+0

können Sie bitte Ihre 'URL' posten? –

+0

Ich erhalte die URL von einem HTML-Formular, das ist eine URL zum Beispiel, dass ive versuchte und kam leer zurück www.noamddd.com –

0

Wenn Sie einfach die URL (und nicht den aktuellen wollen Domainname wie frayne-konok schlägt vor) und möchten den Servernamen extrahieren, können Sie einen regulären Ausdruck wie folgt verwenden:

$serverName = preg_replace('|.*?://(.*?)/.*|', '$1', $url);