В этой статье я покажу, как с помощью PHP выделить название домена из ссылке, при этом не будет иметь значение, какого уровня домен.
Например, есть ссылка вида https://www.ddr64.link/proveryaem-sajt-na-oshibki/.
Необходимо выделить https://www.ddr64.link/
Для выделения домена из ссылки, будем использовать регулярные выражения. Напишем следующий PHP код:
1 2 3 4 5 6 7 8 9 |
<?php $url="https://www.ddr64.link/dosug-i-hobbi/kulinariya/page/"; preg_match('/(.*\.[a-z]+\/)/',$url,$domen);//Выделяем домен echo $domen[1]; ?> |
Для работы с регулярными выражениями будем использовать функцию preg_match().
То, что мы хотим выделить, находится в круглых скобках, $url -это переменная, в которой мы ищем наш шаблон, а $domen – это массив, в котором сохраняется результат.
1 2 3 |
(.*\.[a-z]+\/) |
Вкратце распишу синтаксис:
Точка(.) – любой символ;
Звезда(*) – повторение символа один или более раз, аналог плюса (+);
Экранированная точка (\.) – отбираем текст, где есть точка;
Любая буква после точки [a-z], которая может повторяться один или более раз (+);
Экранированный слеш (\/) – заканчиваем отбор в этом месте.
Если требуется выделить домен до такого вида – www.ddr64.link, то регулярное выражение немного изменится:
1 2 3 4 5 6 7 8 9 |
<?php $url="https://www.ddr64.link/dosug-i-hobbi/kulinariya/page/"; preg_match('/([a-z|\.]+\.[a-z]+)\//',$url,$domen);//Выделяем домен echo $domen[1]; ?> |
Прямая черта | -это аналог логического “или”.