Привет всем! Вот есть, например, ссылка - "http://www.present-dv.ru/present/current/nedv15"; Или любая другая. Можно ли из неё вытащить домен первого и второго уровня? - "present-dv.ru" - функциями PHP? Сделать такую функцию-то я могу, но чутьё подсказывает, что это уже как-то реализовано. В строковых функциях что-то найти не могу. Может через регулярки только? Но ведь в названии могут быть не только буквы... Подскажите пожалуйста
ну регулярками такое делается. смотришь все, что после http:// и до следующего слеша, а потом разбиваешь (explode), где точки разделители (подсказка: с конца)
topy, извращенец, да? Нафига, куда-то смотреть и вычислять до слешей, когда существует стандартный массив значений $_SERVER? Если вы любитель говнокода, то не нужно советовать, что-либо другим пользователям и размножать свою секту. PHP: //адрес сайта "www.present-dv.ru" $z = $_SERVER["SERVER_NAME"]; $z = explode(".", $z); $z = array_reverse ($z); echo print_r($z); Это один из самых оптимальных вариантов.
Gromo, и зачем это тут? Домен сайта в данном примере мы и так получаем из $_SERVER["SERVER_NAME"], нафига нам использовать другие функции, для этой же цели?
Draftpad Вы его получаете из локального окружения, а если идет список ссылок с разными доменами, то данная ф-ция уместна
Всем спасибо. Особенно Gromo за parse_url. Действительно просто. А что их потом explod'ить и взять последние две - как-то сразу и не подумал. И, Draftpad, я действительно имел ввиду ссылки, а не текущий host, - но всё равно благодарю за array_reverse - не знал. Topy: Мне кажется регулярками распыляться на такое - трата ресурсов. Всё же они работают медленно. Проще было бы найти substr позиции первых '/' и всё. А регулярками - надо обусловливать все возможные данные - цифры, дефисы, буквы и пр, позицию. До конца с ними не разобрался, но мне кажется - это будет длинная фраза и система всю её будет перебирать со всеми вариантами намного дольше.