Цикл и заполнение массива

Тема в разделе "Как сделать...", создана пользователем Sergo_Sev, 11 сен 2013.

  1. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Написал простой скрипт, который получает список ссылок на фото в контакте из ссылок на альбомы

    PHP:
    <?

    function 
    f1$link_url )
        {
    $ch curl_init ();
    curl_setopt ($ch CURLOPT_URL $link_url);
    curl_setopt ($ch CURLOPT_USERAGENT "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
    curl_setopt ($ch CURLOPT_RETURNTRANSFER );
    curl_setopt($chCURLOPT_COOKIE'remixlang=0');
    $url curl_exec($ch);
    curl_close($ch);
        return 
    $url;
    }

    // $array_album_all2["album-283_139752468"] = "Альбом 1"; // !!! Если раскомментировать то в конечном массиве получаем значения только для этой ссылки
    $array_album_all2["album-283_110107322"] = "Альбом 2";

    foreach(
    $array_album_all2 as $album_id => $album_title){

    $offset=0;

    while (empty (
    $key))
    {

      
    $profileurl "http://vk.com/al_photos.php?act=show&list=".$album_id."&al=1&offset=".$offset."&part=1";

    $content =  f1($profileurl);

    preg_match_all ('!"id":"(.*?)\",!ism',$content,$fotourl);
    $key $array_all2["photo".$fotourl[1][9]] ;

    foreach(
    $fotourl[1] as $k => $v){
    $array_all2["photo".$v] = " ";

    }
    $offset $offset 10;

    }
    }
    print_r($array_all2);
    ?>
    Цикл проходит первый раз и берет первую ссылку из массива, заполняя второй массив полученными значениями. Как добавить в массив новые значения при последующих выполнениях цикла?
    Может все как то проще можно реализовать?
     
    Последнее редактирование: 12 сен 2013
  2. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    если я правильно задачу понял, то так:
    PHP:
    function f1$link_url )
    {
        
    $ch curl_init ();
        
    curl_setopt ($ch CURLOPT_URL $link_url);
        
    curl_setopt ($ch CURLOPT_USERAGENT "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
        
    curl_setopt ($ch CURLOPT_RETURNTRANSFER );
        
    curl_setopt($chCURLOPT_COOKIE'remixlang=0');
        
    $url curl_exec($ch);
        
    curl_close($ch);
        return 
    $url;
    }

    // $array_album_all2["album-283_139752468"] = "Альбом 1"; // !!! Если раскомментировать то в конечном массиве получаем значения только для этой ссылки
    $array_album_all2["album-283_110107322"] = "Альбом 2";

    $offset 0;
    $fotourls = array();

    foreach(
    $array_album_all2 as $album_id => $album_title){

        
    $profileurl "http://vk.com/al_photos.php?act=show&list=".$album_id."&al=1&offset=".$offset."&part=1";

        
    $offset += 10;

        
    $content =  f1($profileurl);

        if( 
    false !== $content ){

            
    preg_match_all ('!"id":"(.*?)\",!ism',$content,$fotourl);

            if( ! empty( 
    $fotourl] ) ){

                
    $fotourls array_merge$fotourls$fotourl] );
            }
        }
    }

    print_r$fotourls );
    зы.. не очень понятно как вы планируете манипулировать $offset - сейчас он инкрементируется исключительно для вида..