Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Регулярные выражения
На страницу 1, 2  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Пн Мар 27, 2006 10:23 am    Заголовок сообщения: Регулярные выражения
Ответить с цитатой

Здравствуйте!
Как с помощью регулярных выражений получить из URL имя домена?

например из http://www.domname.ru/file.htm domname.ru
или из http://domname.ru/file.htm domname.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Мар 27, 2006 2:02 pm    Заголовок сообщения:
Ответить с цитатой

пример немного некоректный, а что если будет URL:

http://dep.name.firma.com.ru? Тогда имя домена com.ru выходит и только

Где то был пример, поищу выложу
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Вт Мар 28, 2006 5:58 am    Заголовок сообщения:
Ответить с цитатой

Да точно! Об этом я не подумал Smile

Спасибо Денис, буду ждать примера.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Павел

Участник тусовки


Зарегистрирован: 17.02.2006
Сообщения: 110
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Мар 29, 2006 9:07 am    Заголовок сообщения:
Ответить с цитатой

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

<?php
$url = "http://www.domname.ru/file.htm";
$arr = parse_url($url);
echo $arr[host];
?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Павел

Участник тусовки


Зарегистрирован: 17.02.2006
Сообщения: 110
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Мар 29, 2006 9:28 am    Заголовок сообщения:
Ответить с цитатой

Ну а с помощью регулярных выражений получить имя хоста можно так:

Код:

<?php
$url = "http://www.domname.ru/file.html?quot;;
$patern = "#http://([^<]*)\/[-a-z0-9_:@&?=+,.!/~*'%$]*\.(html?|php|pl|cgi)#i";
if(preg_match($patern, $url, $matches)) echo $matches[1];
?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Мар 29, 2006 9:47 am    Заголовок сообщения:
Ответить с цитатой

Павал, спасибо Smile

А то я уже и забыл об этом посте

Добавить нечего Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Ср Мар 29, 2006 9:56 am    Заголовок сообщения:
Ответить с цитатой

Павел, большое спасибо! Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Павел

Участник тусовки


Зарегистрирован: 17.02.2006
Сообщения: 110
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Мар 30, 2006 9:58 am    Заголовок сообщения:
Ответить с цитатой

Всегда рад помочь Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Апр 03, 2006 1:34 pm    Заголовок сообщения:
Ответить с цитатой

Вот более развернутый пример

$fr_url = parse_url("http://www.dkws.org.ua/index.php?page=articles");
echo $fr_url[host]; // выводим доменное имя
echo $fr_url[port]; // выводим порт (если указан)
echo $fr_url[path]; // выводим путь
echo $fr_url[user]; // выводим имя пользователя (если указано)
echo $fr_url[password]; // выводим пароль (если указан)
echo $fr_url[query]; // выводим строку запроса (если указана)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Пт Апр 07, 2006 2:01 pm    Заголовок сообщения:
Ответить с цитатой

Конечно функцию parse_url() легче применить, но вопрос был про регулярные выражения! Вот регулярное выражение, с помощью которого можно узнать имя ДОМЕНА!
Код:
$url = "http://www.dkws.org.ua/phpbb2//viewtopic.php?t=91&sid=6129884012ab5468b46e2769e7b78463";
$patern = "(^(http://|https://|ftp://)?(w{3}.)?([a-zA-Z0-9.]+[a-zA-Z0-9]{2,63}))si";
if(preg_match($patern, $url, $matches)) echo $matches[3];


в данном примере будет напечатанно dkws.org.ua ч.т.д.
я ее сам родил Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
yok

Участник тусовки


Зарегистрирован: 06.02.2008
Сообщения: 260
Откуда: krasnodar

СообщениеДобавлено: Ср Сен 30, 2009 9:25 am    Заголовок сообщения:
Ответить с цитатой

$patern = "(^(http://|https://|ftp://)?(w{3}.)?([a-zA-Z0-9.]+[a-zA-Z0-9]{2,63}))si";

вообще думаю тут ошибка, я еще только начал изучать регулярные выражения по книге Джеффа Фридла,
[a-zA-Z0-9]{2,63} но думаю в этом почти подвыражении(не знаю как назвать, кроется одна ошибка, тут возможны и нижние подчеркивания и все что угодно и также /, поэтому [^ ]* это заменяет.
Инвертированный символьный клас.
Да и скажите пожалуйста, а почему описаны только 63 символа, на адресную строку какое то ограничение существует? Длину в смысле?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
yok

Участник тусовки


Зарегистрирован: 06.02.2008
Сообщения: 260
Откуда: krasnodar

СообщениеДобавлено: Ср Сен 30, 2009 9:36 am    Заголовок сообщения:
Ответить с цитатой

Ой , простите, я не прав, Boroda правильно написал, он в подвыражении $3 описал ua и тем ограничил , но вообще то вопрос другой а зачем тогда 63?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Anton99

Neo


Зарегистрирован: 26.11.2006
Сообщения: 1676

СообщениеДобавлено: Ср Сен 30, 2009 2:34 pm    Заголовок сообщения:
Ответить с цитатой

w{3} = 3 буквы?

Есть .travel, .aero, .info, .name, .mobi
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
yok

Участник тусовки


Зарегистрирован: 06.02.2008
Сообщения: 260
Откуда: krasnodar

СообщениеДобавлено: Чт Окт 01, 2009 6:03 am    Заголовок сообщения:
Ответить с цитатой

(w{3}.)?
Anton99, это подвыражение направлено на поиск сравнения с www., а ? вопросительный знак это необязательное выражение непосредственно перед ? т.е(...).

[a-zA-Z0-9]{2,63} ориентированно на поиск сравнения с такой конструкцией .travel, .aero, .info, .name, .mobi
но интервальный квантификатор до 63 символов , слишком много, поэтому я сразу и подумал что он описывает чтото такое /sadfasd/sadfsad/dsa222222/sdf/sdf

Рекомендую книгу http://www.phpfaq.ru/files/friedl.rar
Регулярные выражения как самостоятельный язык.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Anton99

Neo


Зарегистрирован: 26.11.2006
Сообщения: 1676

СообщениеДобавлено: Чт Окт 01, 2009 8:12 am    Заголовок сообщения:
Ответить с цитатой

yok, спасибо за книгу, почитаю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис