За последние 24 часа нас посетил 16951 программист и 1276 роботов. Сейчас ищут 1423 программиста ...

выдрать теги IMG

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

  1. TROODON

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

    С нами с:
    4 ноя 2007
    Сообщения:
    112
    Симпатии:
    0
    как можно выдрать из хтмл текста все теги IMG и получить массив на выходи где будут ссылка на картинку и его альт

    нашёл примерчик
    PHP:
    1. <?php
    2. // начало
    3. $link = "http://post4me.ru";
    4. $file = @fopen($link, "r");
    5. if ($file) { $rf = fread($file, 200000); fclose($file); }
    6.  
    7.   $page = $rf;
    8.   preg_match_all("|<a[\s]+href=\"([^\"]*)\">([^<]+)<|i",$page,$out,PREG_PATTERN_ORDER);
    9.   echo "<pre>";
    10.   print_r($out[1]);
    11.   print_r($out[2]);
    12.   echo "</pre>";
    13. ?>
    но регулярные выражения не знаю так что не разобралцо(
     
  2. NOmeR1

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

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    Есть же раздел "Регулярные выражения"

    Ссылку вот так (расчитаны все варианты):
    Код (Text):
    1. preg_match_all("~<img[^>]+src=[\x22\x27\x20]?([^\x22\x27\x3E\x20]+)[\x22\x27\x20]?[^>]*>,$page,$out);
    Затем лучше так же выдирать альт, но думаю, сам разберёшься как)
     
  3. TROODON

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

    С нами с:
    4 ноя 2007
    Сообщения:
    112
    Симпатии:
    0
    чо то не разобрался и код не сработал....поругался насчёт тильды я ещё добавил недостающие кавычки но не сработало(
     
  4. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    перед закрывающей регулярку кавычкой добавь еще одну тильду
     
  5. NOmeR1

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

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    Прошу прощения, протупил)
    Код (Text):
    1. preg_match_all('~<img[^>]+src=[\x22\x27\x20]?([^\x22\x27\x3E\x20]+)[\x22\x27\x20]?[^>]*>~i', $page, $out);
    Так будет правильней.
     
  6. TROODON

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

    С нами с:
    4 ноя 2007
    Сообщения:
    112
    Симпатии:
    0
    NOmeR1
    спасибо =)