Достать урл регуляркой

Тема в разделе "Регулярные выражения", создана пользователем booch, 6 авг 2008.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. booch

    booch Постоялец

    Регистр.:
    26 ноя 2007
    Сообщения:
    108
    Симпатии:
    14
    Добрый день! Час бьюсь с одной страницей и не могу никак достать необходимый урл, не могу понять почему так.

    Страница находится по адресу: Перейти по ссылке

    Если в кратце, то имеется следующий кусок текста:
    HTML:
    <span id="ls_contents-0">
    			  													Меню ФОТОШОПА    (перевод с английского на русский). Image Изображение*<BR>Mode режим<BR>Bitman битовый<BR>Grayscale градации серого<BR>Duotone дуплекс<BR>Indexed Color индексированные цвета<BR>RGB C
    																																																																																 		  			
    					 <a href="/koding/menyu-fotoshopa-perevod-s-anglijskogo-na-russkij-4/">Читать полностью</a> &raquo; <br /> 
    Пару слов из текста находится у меня в переменной $body

    Пытаюсь вытащить урл /koding/menyu-fotoshopa-perevod-s-anglijskogo-na-russkij-4/ следующей регуляркой:
    PHP:
    preg_match_all('|'.$body.'(.*)<a href="(.*)"|U'$result1$anchor);
    Но не помогает.
    Подскажите в чём проблема.
     
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    будь проще
    PHP:
    if (preg_match('/<a href="(.+?)">/'$page$regs)) {
        
    $url $regs[1];
    } else {
        
    $url "";
    }
    это в твоем случае . Выдрать НУЖНЫЙ урл из множества на странице можно просто уточнив оркужающмие строки ( наприме начало с /koding или еще что-то )
     
  3. bogus92

    bogus92 Прохожие

    а зачем тебе задавать боди в регулярке? если тебе нужны сами урлы ссылок, то используй вариант выше только all, а так у тебя ссылки найдет и без более детального уточнения.. если тебе нужно более конкретно.. то пиши конкретнее регулярку)
     
  4. zerdek

    zerdek

    Регистр.:
    29 ноя 2007
    Сообщения:
    346
    Симпатии:
    50
    пропустил приизнак - искать до первой ", а не до последней.
    попробуй такую регулярку:
    Код:
    '(.*)<a href="(.*?)"|U'
    о... уже ответили, ну да ладно. машу пальцем, тьфу ты, кашу маслом не испортишь :)
     
  5. farm

    farm

    Регистр.:
    8 июн 2006
    Сообщения:
    536
    Симпатии:
    105
    А как мне достать определеный урл, учитывая окружение. Что-то читая мануал я совсем запутался.:thenks:

    Нужно выдернуть ссылку из href="ссылка"
     
  6. faider

    faider Постоялец

    Регистр.:
    19 мар 2008
    Сообщения:
    128
    Симпатии:
    20
    farm, вверху всё написано, осталось только на кнопку нажать.
    Если <br>-зависимость критична, то
    PHP:
    $text=<<<EOF
    Lorem ipsum <br />
    <a href="http://www.site.ru/verify.php?u=32432&c=Msaa7U2fF">http://www.site.ru/verify.php?u=32432&c=Msaa7U2fF</a><p><br />
    EOF;
    preg_match('#.*<br />\r\n<a href="(.+?)"#i'$text$forms );   
    # $forms[1] - ссылка 
    \r\n может принимать значение и просто \n
     
    farm нравится это.
  7. Romantic

    Romantic Прохожие

    Нужна реглярка для того что бы вытащить урл адресс favicon... Помогите пожалуйста)
     
  8. Drak0n4ik

    Drak0n4ik Создатель

    Регистр.:
    8 май 2009
    Сообщения:
    25
    Симпатии:
    1
    PHP:
    $t '<link rel="icon" href="/favicon.ico" type="image/x-icon" />
    <link rel="home" href="/" title="головна сторінка" />'
    ;

    preg_match("/<link(.*)href=.(.*).ico(.*)>/i",$t,$m);
    print_r($m);
     
  9. Urch

    Urch Вебмастер

    Регистр.:
    3 янв 2008
    Сообщения:
    263
    Симпатии:
    73
    народ подскажите регулярку чтобы можно было вытащить .ru ссылки из базы сайтов с .com, .net, .info итд. пробывал через regexp но знаний нехватило, несмог точку указать перед ru
     
  10. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    362
    Симпатии:
    148
    а тут, наверное, и без регулярки можно. Посмотри в сторону subst_count(). Если в строке ".ru" встречается - значит - наш клиент.
     
Статус темы:
Закрыта.