За последние 24 часа нас посетили 15489 программистов и 1644 робота. Сейчас ищут 1115 программистов ...

Почему сохраняется последняя картинка?

Тема в разделе "Прочие вопросы по PHP", создана пользователем melihovgv, 12 дек 2011.

  1. melihovgv

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

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    Почему сохраняется последняя картинка?
    Должны сохраняться обе...
    $arr[] - в ней содержится ссылка на страницу с картинкой
    $img - в ней содержится ссылка на картинку
    $fp2- соответсвенно папка куда сохраняется файл
    Где ошибка???
    PHP:
    1. <?
    2.           $arr[]='http://blokart.su/par/par_567.html';
    3.           $arr[]='http://blokart.su/terrakot/pl-obl/pl-obl_5632.html';
    4.           $counter=count($arr);
    5.           echo $counter.'<br>';
    6.  
    7.   foreach($arr as $arr1){$links=$arr1;}
    8.  
    9.           $getContenturl="$links";
    10.           $getContentcont=file_get_contents($getContenturl);
    11.           $vivod = getContent($getContentcont);
    12.           $htp="http://blokart.su";
    13.        
    14.   if (preg_match_all("(/netcat_files/\d+/\d+/[0-9a-z]*)",$vivod,$m))
    15.  
    16.           $img="$htp".$m[0][0];
    17.           {print $img;echo '<br>';}
    18.          
    19.           $data = $img;
    20.           list($a,$b,$c,$d,$q,$q1,$q2,$q3) = explode("/", $data);
    21.           echo $q2;
    22.  
    23.        
    24.    
    25.   foreach($m as $link)//{echo "$link"}
    26.    
    27. //for($i=0;$i<1;$i++){
    28.  
    29.           $res=file_get_contents($img);
    30.    
    31.           $fp2=fopen("img\\".$q2.".jpg",'w+');
    32.           fwrite($fp2,$res);
    33.           fclose($fp2);
    34.          
    35.                   // }
    36.    
    37. function getContent($cont){
    38.  
    39.           $tag_in="<div class='main'>";
    40.           $tag_out='Корзина';
    41.           $position=strpos($cont,$tag_in);//nahodit nachalo
    42.           $cont=substr($cont,$position);
    43.           $position=strpos($cont,$tag_out);
    44.           $cont=substr($cont,0,$position);
    45.           $cont=strip_tags($cont ,'<img><div></div>' );
    46.  
    47.           $string = $cont;
    48.           $patterns[0] = "(<div>[^>]*</div>)";
    49.           $patterns[1] = "(align=[^>]*)";
    50.           $patterns[2] = "(style=[^>]*)";
    51.           $patterns[3] = "(class=[^>]*)";
    52.          //  $patterns[4] = "(/netcat_files/\d+/\d+)";
    53.          //  $patterns[5] = "((/Image/[0-9a-z]*))";
    54.  
    55.          $replacements[1] = "";
    56.          $replacements[2] = "";
    57.          $replacements[3] = "";
    58.          $replacements[4] = "";
    59.          //$replacements[5] = "/netcat_files/Image";
    60.          //$replacements[6] = "\\1.jpg";
    61.    
    62.          $cont=preg_replace($patterns, $replacements, $string);
    63.          return $cont;
    64.                              }
    65. ?>
     
  2. Okula

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

    С нами с:
    13 дек 2011
    Сообщения:
    20
    Симпатии:
    1
    Потому что в масиве foreach() ты перезаписываешь переменную $links и по окончании цикла в этой переменной будет содержаться только одни результат (последний).
     
  3. melihovgv

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

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    Покажите как сделать так,чтобы $links выдавала поочередно ссылки?
     
  4. Okula

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

    С нами с:
    13 дек 2011
    Сообщения:
    20
    Симпатии:
    1
    Нужно все ваши операции которые проводятся с переменной $links поместить в цикл foreach()
    Тогда все действия и будут выполнятся попорядку.