За последние 24 часа нас посетили 19352 программиста и 1606 роботов. Сейчас ищут 839 программистов ...

Содержимое href в теге link

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

  1. Brothersssddsss

    Brothersssddsss Активный пользователь

    С нами с:
    17 мар 2010
    Сообщения:
    9
    Симпатии:
    0
    Мне нужно составить рег. выражение, которое будет выдавать адрес расположения иконки сайта:

    Примеры возможных вариантов написания тегов link в текстах:

    <link rel="icon" href="favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
    <link href="favicon.ico" rel="shortcut icon">
    <link type="image/x-icon" rel="icon" href="favicon.ico">
    <link href="favicon.ico" type="image/x-icon" rel="icon">

    Учитывая то что:
    - тега link в тексте может не быть
    - кавычки могут быть как двойные, так и одинарные
    - порядок расположения rel, href, type, может быть разный
    - type вообще может не быть
    - rel может содержать "shortcut icon" или "icon"
    - слеш, закрывающий тег может быть, а может не быть

    Ну, вот надо чтобы он выдавал содержимое href

    У меня тут уже кое-что есть тут надо сделать рег. выражение для первого preg_match

    Код (Text):
    1. $content = "текст, в котором будет искаться тег link"
    2.  
    3. if(preg_match("||is", $content, $out))
    4. {
    5.   if(preg_match("|href=['\"](.*?)['\"]|is", $out[0], $result))
    6.   {
    7.     if ($result[1] != NULL) {echo $result[1];}
    8.   }
    9. }
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ну как-то так
    Код (Text):
    1. #<link[^>]+((?:type=([\'\"])?image\/x-icon\\2)?)[^>]*href=(?(?=[\'\"])([\'\"])(.+?)\\3|([^\s]+))[^>]*\\1[^>]*>#is