Вы не можете использовать prev ($ array) в цикле foreach, как уже было сказано
Вы должны либо повторить цикл while или for
Но помимо этого, вы все равно столкнетесь с некоторыми другими проблемами ...
php - очень линейный язык, пока код находится внутри, такой цикл, он не может делать ничего другого, поэтому этот php должен работать как отдельный поток, и, поскольку он должен что-то делать (возвращать значение), он будет блокироваться. не только сам, но и поток, чтобы поймать это значение тоже.
И, скорее всего, через некоторое время он сломается, вы можете увеличить время выполнения скрипта php max в этом цикле, чтобы он не умирал, но вы должны сделать то же самое и с геттером ... вам не следует делать что-то подобное (вот почему здесь нет кода)
Так что, если я вас правильно понял, вы хотите получить доступ к файлу на удаленном сервере ...
Вы могли бы просто:
while (!$handle) // file not opened i.e. server not accessible
{
$handle = fopen("http://www.example.com/", "r"); //try to fopen file
}
Это также будет заблокировано внутри цикла, пока $ handle не установлен ИЛИ не установлен в ЛОЖЬ
и это позволит вашему сценарию умереть после максимального времени исполнения (обычно 60 секунд)
Как только $ handle установлен в дескриптор файла для вывода html удаленных серверов (в данном случае), он будет выполнять весь следующий код в обычном режиме
Если вы закончили читать $ handle, не забудьте закрыть его с помощью
fclose($handle);