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

Sergo_Sev

Творец
Регистрация
14 Июн 2008
Сообщения
578
Реакции
193
Написал простой скрипт, который получает список ссылок на фото в контакте из ссылок на альбомы

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 , 1 );
curl_setopt($ch, CURLOPT_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);
?>

Цикл проходит первый раз и берет первую ссылку из массива, заполняя второй массив полученными значениями. Как добавить в массив новые значения при последующих выполнениях цикла?
Может все как то проще можно реализовать?
 
Последнее редактирование:
если я правильно задачу понял, то так:
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 , 1 );
    curl_setopt($ch, CURLOPT_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[ 1 ] ) ){

            $fotourls = array_merge( $fotourls, $fotourl[ 1 ] );
        }
    }
}

print_r( $fotourls );

зы.. не очень понятно как вы планируете манипулировать $offset - сейчас он инкрементируется исключительно для вида..
 
Назад
Сверху