$ctx = stream_context_create(['http'=>['timeout'=>3]]); // таймаут в секундах
$maxAttempts = 2; // макс кол-во попыток
$attempt = 0; // тут будет храниться кол-во совершенных попыток
while(!($content=file_get_contents('http://lll', false, $ctx)) && ++$attempt<$maxAttempts); // тут магия
echo $content; // полученный контент
do {
$ctx = stream_context_create(array('http'=>
array(
'timeout' => 3, //максимум 3 сек
)
));
$getcontents = @file_get_contents("vkurl", false, $ctx); // выбивает ошибку таймаута по прошествии 3-х секунд, вывод ошибки отключаем
} while ($getcontents===false); //зацикливаем до тех пор, пока не получим что нибудь ценное ))
echo $getcontents;
while($content = @file_get_contents('vkurl')){echo $content;}