Извлеките домен из URL (включая твердые) [дубликат]

5
задан karl 26 March 2010 в 22:39
поделиться

3 ответа

PHP имеет функцию parse_url(), которая поможет вам выполнить базовое разделение на протокол, хост, порт и так далее.

Что касается извлечения «правильного» домена в неопределенных случаях, это чрезвычайно трудно сказать, потому что иногда «двучастные TLD» являются мерой органа TLD (например, в Великобритании), а иногда являются частными предприятиями (например, .uk.com). Я думаю, что вы не сможете обойти ведение списков доменов верхнего уровня, которые имеют две части, такие как

  • .co.uk
  • .ac.uk
  • .ac.th

эти окончания будут рассматриваться как домены уровня TLD (Top level), поглощая вторую часть.

Это единственный способ надежно отличить «двухчастные TLD», такие как .co.uk - где server1.ibm.co.uk (где двухчастные .co.uk должны быть удалены для определения самого домена) из обычных поддоменов, таких как server1.ibm.com (где .com необходимо удалить).

Хорошей отправной точкой для получения списка многих важных «двухкомандных TLD» является поиск домена по speednames.com (выберите «все» в странах).Более полный список можно найти как часть библиотеки Ruby domainatrix.

6
ответ дан 13 December 2019 в 05:32
поделиться

Может быть, здесь может помочь функция parse_url ?


В вашем случае с этими URL-адресами следующие часть кода:

echo parse_url('http://site.com/hello.php', PHP_URL_HOST) . '<br />';
echo parse_url('http://site.com.uk/hello.php', PHP_URL_HOST) . '<br />';
echo parse_url('http://subdomain.site.com/hello.php', PHP_URL_HOST) . '<br />';
echo parse_url('http://subdomain.site.com.uk/hello.php', PHP_URL_HOST) . '<br />';
echo parse_url('http://www.champa.kku.ac.th/hello.php', PHP_URL_HOST) . '<br />';

Дает следующий результат:

site.com
site.com.uk
subdomain.site.com
subdomain.site.com.uk
www.champa.kku.ac.th
6
ответ дан 13 December 2019 в 05:32
поделиться

С Ruby вы можете использовать библиотеку Domainatrix / gem

http://www.pauldix.net/2009/12/parse-domains-from-urls-easy-with-domainatrix.html

require 'rubygems'
require 'domainatrix'
s = 'http://www.champa.kku.ac.th/dir1/dir2/file?option1&option2'
url = Domainatrix.parse(s)
url.domain
=> "kku"

отличный инструмент! :-)

0
ответ дан 13 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

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