PHP REGEX: Получите домен от URL

Что я хочу


Я хочу добраться от a URL domain часть так от http://example.com/ -> example.com

Примеры:


+----------------------------------------------+-----------------------+
| input                                        | output                |
+----------------------------------------------+-----------------------+
| http://www.stackoverflow.com/questions/ask   | www.stackoverflow.com |
| http://validator.w3.org/check                | validator.w3.org      |
| http://www.google.com/?q=hello               | www.google.com        |
| http://google.de/?q=hello                    | google.de             |
+----------------------------------------------+-----------------------+

Я нашел некоторые связанные вопросы в stackoverflow но ни один из них не был точно, что я искал.

Спасибо за любую справку!

20
задан Adam 9 August 2010 в 17:00
поделиться

5 ответов

Нет необходимости использовать regex для этого. В PHP есть встроенная функция, которая делает именно это. Use parse_url():

$domain = parse_url($url, PHP_URL_HOST);
74
ответ дан 29 November 2019 в 22:33
поделиться
$tmp = parse_url($url);
$url = $tmp['host']
1
ответ дан 29 November 2019 в 22:33
поделиться

Вот мое быстрое и грязное решение.

http: // ([^ /] +). *

Я не тестировал его, но он должен захватывать все, что находится между http: // и первой косой чертой.

0
ответ дан 29 November 2019 в 22:33
поделиться
if (preg_match('/http:\/\/([^\/]+)\//i', $target_string, $matches)) {
  $domain = $matches[1];
}
0
ответ дан 29 November 2019 в 22:33
поделиться

Предполагает, что http:// префиксы все.

$tmp = explode("/", $url);
$domain = $tmp[2];
1
ответ дан 29 November 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: