За последние 24 часа нас посетили 14988 программистов и 1764 робота. Сейчас ищут 1414 программистов ...

Ссылки

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

  1. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Приветствую всех!
    Знатоки пожалуйста подскажите.
    Нужно вытаскивать только href аттрибут:
    Код (PHP):
    1. $str="<a href=name1>
    2. <a href=\"name2\">
    3. <a href='name3'>";
    4. preg_match_all('<a href=(?:\'([^\']+)\'|"([^"]+)"|([^\s]+))>',$str,$m);
    5. print_r($m[0]); 
    Array
    (
    [0] => a href=name1>
    [1] => a href="name2"
    [2] => a href='name3'
    )


    Нужно чтобы было :

    Array
    (
    [0] => name1
    [1] => name2
    [2] => name3
    )


    Ничего не получается, что - то...

    Так при этом - это если нет аттрибутов, а так редко бывает...
    Как вот такое сделать, чтобы у меня смотрело все ссылки не важно в каком порядке написано и сколько аттрибутов и чтобы выбрало только:
    Код (PHP):
    1. <a....href=(то, что в ' или " или без них).....>
    Пожалуйста помогите - уже замучился, никак не могу составить эту регулярку...
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    почему не использовать инструменты для обработки xml?
     
  3. Gedorf

    Gedorf Новичок

    С нами с:
    10 ноя 2015
    Сообщения:
    6
    Симпатии:
    0
    Код (PHP):
    1. $str="<a href=name1><a href=\"name2\"><a href='name3'>";
    2.  
    3. preg_match_all('#^'.preg_quote('<').'([a-z]+\s[a-z]{4}\=([a-z0-9]{5}))|\\"([a-z0-9]{5})|\'([a-z0-9]{5})#uiU',$str,$m);
    4. $m2 =array_merge($m[2],$m[3],$m[4]);
    5. $array = array_filter ($m2);
    6. $array1 = array_values($array);
    7. echo '<pre>'.print_r($array1,1).'</pre>';
    шушуть пофильтровать и будет ок)
     
  4. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Да потому, что, я, затупок! Решил, спасибо, что хоть кто - то вспоминает про такое :)

    Мозги вам надо отфильтровать, чтобы такой хуйни не писали.