Парсится одна картинка, как спарсить все?

Тема в разделе "Как сделать...", создана пользователем ZiX, 2 ноя 2012.

  1. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.378
    Симпатии:
    562
    PHP:
            preg_match_all('@imgb="(.*?)"@smi',$page,$img);
     
                if(!empty(
    $img[1])) {
                    
    $file_name time().rand(0,100000000).".jpg";
                    
    file_put_contents("images/$file_name",file_get_contents($img[1]));
                } else {
                    
    $file_name time().rand(0,100000000).".jpg";
                    
    file_put_contents("images/$file_name",file_get_contents('noimg.jpg'));
                }
    Парсится только одна картика.
    Как спарсить все картинки со значением imgd?
     
  2. Nagibator665

    Nagibator665

    Заблокирован
    Регистр.:
    27 авг 2012
    Сообщения:
    258
    Симпатии:
    79
    а цикл foreach зачем? ;)
     
  3. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    preg_match_all('@imgb="(.*?)"@smi',$page,$img);
    foreach ($img as $value) {
    if(!empty($value[0])) {
    $file_name = time().rand(0,100000000).".jpg";
    file_put_contents("images/$file_name",file_get_contents($
    value[0]));
    } else {
    $file_name = time().rand(0,100000000).".jpg";
    file_put_contents("images/$file_name",file_get_contents('noimg.jpg'));
    }

    }
     
    ZiX нравится это.
  4. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.378
    Симпатии:
    562


    Нет, все равно по одной парсит. Foreach не помогает.
    HTML:
    <img src="http://xxx/small_images/53/32/5332_340489_FTY-5332.jpg" border="0" width="64" height="64" num="0"
    class="li_img02" imgSize="280" imgb="http://xxx/5332_340489_FTY-5332.jpg" imglow="http://xxx/small_images/53/32/5332_340489_FTY-5332.jpg"/>
    </li>                 
    <li  class="border_r" >
    <img src="http://img1.tinydeal.com/small_images/53/32/5332_340490_FTY-5332.jpg" border="0" width="64" height="64" num="1"
    class="li_img02" imgSize="280" imgb="http://xxx/5332_340490_FTY-5332.jpg" imglow="http://xxx/small_images/53/32/5332_340490_FTY-5332.jpg"/>
                      </li>                 
    <li  class="border_r" >
    <img src="http://xxx/small_images/53/32/5332_340491_FTY-5332.jpg" border="0" width="64" height="64" num="2"
    class="li_img02" imgSize="280" imgb="http://xxx/5332_340491_FTY-5332.jpg" imglow="http://xxx/small_images/53/32/5332_340491_FTY-5332.jpg"/>
    </li>                 
    
     
  5. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    PHP:
    $src '<img src="http://xxx/small_images/53/32/5332_340489_FTY-5332.jpg" border="0" width="64" height="64" num="0"
    class="li_img02" imgSize="280" imgb="http://xxx/5332_340489_FTY-5332.jpg" imglow="http://xxx/small_images/53/32/5332_340489_FTY-5332.jpg"/>
    </li>           
    <li  class="border_r" >
    <img src="http://img1.tinydeal.com/small_images/53/32/5332_340490_FTY-5332.jpg" border="0" width="64" height="64" num="1"
    class="li_img02" imgSize="280" imgb="http://xxx/5332_340490_FTY-5332.jpg" imglow="http://xxx/small_images/53/32/5332_340490_FTY-5332.jpg"/>
                      </li>           
    <li  class="border_r" >
    <img src="http://xxx/small_images/53/32/5332_340491_FTY-5332.jpg" border="0" width="64" height="64" num="2"
    class="li_img02" imgSize="280" imgb="http://xxx/5332_340491_FTY-5332.jpg" imglow="http://xxx/small_images/53/32/5332_340491_FTY-5332.jpg"/>
    </li>'
    ;
    preg_match_all('@imgb="(.*?)"@smi',$src,$img);
    //print_r($img);
    foreach($img[1] as $data){
        echo 
    $data;//урл картинки(в данном случае http://xxx/5332_340489_FTY-5332.jpghttp://xxx/5332_340490_FTY-5332.jpghttp://xxx/5332_340491_FTY-5332.jpg, то есть он подряд показал нам урл всех трёх картинок)
    }
    что с ними делать дальше - решайте сами
     
    ZiX нравится это.
  6. Nagibator665

    Nagibator665

    Заблокирован
    Регистр.:
    27 авг 2012
    Сообщения:
    258
    Симпатии:
    79
    для перебора лучше всего пользовать foreach, он собственно для этого и сделан. Зачем изобретать велосипед и быдлокодить?