php - regex Hostnamen Extraktion
-
06-07-2019 - |
Frage
Ich habe mich um einen regulären Ausdruck, dass ausspucken wird nur die ‚Stackoverflow‘ Teil und kein www. oder .com usw. Alles, was ich war zu überprüfen, finden könnte, wenn die URL gültig war ... ich php URL-Filter verwendet habe, um festzustellen, dass jetzt viel ich bin auf der Suche, um zu bestimmen, welche Seite es ist.
Ich habe einen Ausdruck noch nie so geschrieben Ich hoffe, dass jemand es überprüfen kann / um eine bessere Lösung empfehlen.
preg_match('@^(?:http://)(?:www.)?([^.]+)@i', $url, $matches)
edit: Alle URLs, mit denen ich zu tun sind .com, ob das hilft
Lösung
Einzeiler ohne reguläre Ausdrücke zu verwenden !!!
$url = 'http://stackoverflow.com';
$d = array_shift( explode( '.', str_replace('www.', '', parse_url( $url, PHP_URL_HOST )) ) );
echo $d;
Andere Tipps
Haben Sie PHP als parse_url () Funktion?
Wenn Sie wissen, dass das, was Sie haben eine URL und das Domain-Ende in .com eine einfache Sache wie
preg_match('#([^\.]*)\.com#', $url, $matches);
sollte es tun.
Während diese auf einer Domain wie www.com.foo.com
scheitern aber vielleicht genug sein, je nach Ihrer Situation.
preg_match('#https?://(?:www.)?(.*?)\.com#i', $str, $match);