Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Преобразовать адресную строку в один лишь домен
 
 автор: Vertex   (14.07.2007 в 19:33)   письмо автору
 
 

Скажите пожалуйста, а каким регулярным выражением можно преобразовать адресную сроку, чтоб в ней не выводилось ничего после .... третьего слеша. Иными словами, хотелось бы получить только адрес домена. Возможно, известно количество знаков до третьего слеша
http://subdomain.ru/, оно равно $n. Как быть?
И, может быть. знаете какие-нить ссылочки на лит-ру по данной теме, а то ведь и самому интересно, что же значат эти загадочные комбинации символов :)

   
 
 автор: kasmanaft   (15.07.2007 в 20:25)   письмо автору
 
   для: Vertex   (14.07.2007 в 19:33)
 

Тут, видимо, можно обойтись без регулярных выражений

<pre>
<?php
print_r
(parse_url('http://subdomain.ru/'));
?>

Про регулярные выражения можно почитать, например, здесь.
На этом сайте можно скачать книгу Фридла про рег выражения.

   
 
 автор: Vertex   (15.07.2007 в 20:41)   письмо автору
 
   для: kasmanaft   (15.07.2007 в 20:25)
 

огромное спасибо! :)

   
 
 автор: sidPR   (02.08.2007 в 16:27)   письмо автору
 
   для: Vertex   (15.07.2007 в 20:41)
 

Я вот по форуму лазил и нашел такую регулярку


function dom_name($url){
    if (preg_match("#([\w]+\.[\w]{2,4})(/.*)?$#", $url, $regs)) 
        return $regs[1];    
}



проблема в том что она не кореектно вырезает домен если сайт с тире ... =(

   
 
 автор: SHAman   (02.08.2007 в 16:39)   письмо автору
 
   для: sidPR   (02.08.2007 в 16:27)
 

Попробуйте так:

#^((http:\/\/)?(www\.)?[a-z0-9_-.]+\.\w{2,5}).*$#

   
 
 автор: Faraon   (02.08.2007 в 17:07)   письмо автору
 
   для: SHAman   (02.08.2007 в 16:39)
 

А нижнее подчеркивание зачем? Это же не допустимый символ в имени домена

   
 
 автор: sidPR   (02.08.2007 в 17:20)   письмо автору
 
   для: Faraon   (02.08.2007 в 17:07)
 

Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at

   
 
 автор: Faraon   (02.08.2007 в 17:28)   письмо автору
 
   для: sidPR   (02.08.2007 в 17:20)
 


<?php
$f
="http://www.subdomen.ru/sss.php";
preg_match("#^((http:\/\/)?(www\.)?[a-z0-9-.]+\.\w{2,5}).*$#"$f$out);
print 
$out[1];
?>

   
 
 автор: sidPR   (03.08.2007 в 10:18)   письмо автору
 
   для: Faraon   (02.08.2007 в 17:28)
 

А как сделать чтоб если www есть неучитывало ....=\ а то бывает и с WWW и БЕз WWW и сравнивать неудобно

   
 
 автор: Faraon   (03.08.2007 в 10:48)   письмо автору
 
   для: sidPR   (03.08.2007 в 10:18)
 

Не совсем понятен вопрос

   
 
 автор: sidPR   (03.08.2007 в 11:05)   письмо автору
 
   для: Faraon   (03.08.2007 в 10:48)
 

короче если есть www отризал его а если нет то и нет :)

   
 
 автор: Faraon   (03.08.2007 в 11:12)   письмо автору
 
   для: sidPR   (03.08.2007 в 11:05)
 


<?php
$f
="http://www.subdomen.ru/sss.php";
preg_match("#^((http:\/\/)?(www\.)?([a-z0-9-.]+\.\w{2,5})).*$#"$f$out);
print 
$out[2].$out[4];
?>

   
 
 автор: sidPR   (03.08.2007 в 11:19)   письмо автору
 
   для: Faraon   (03.08.2007 в 11:12)
 

Неотризаецо :(

   
 
 автор: Faraon   (03.08.2007 в 11:24)   письмо автору
 
   для: sidPR   (03.08.2007 в 11:19)
 

Все отрезается!
После этого выводится http://subdomen.ru

   
 
 автор: sidPR   (03.08.2007 в 11:59)   письмо автору
 
   для: Faraon   (03.08.2007 в 11:24)
 

Ой простите ... моя ошибка , да все отлично работает , спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования