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

War es hilfreich?

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top