Вы делаете довольно много здесь, я не удивлен, что сценарий остановился. Вы загружаете несколько веб-страниц, анализируете их, находите в них изображения, а затем загружаете эти изображения ... сколько страниц и сколько изображений на странице? Если мы не говорим очень маленькие цифры, то этого следовало ожидать.
Я не уверен, что ваш вопрос на самом деле, учитывая это, но я предполагаю, что это "как я могу заставить эту работу?". У вас есть несколько вариантов, это действительно зависит от того, для чего это нужно. Если это одноразовый взлом, чтобы очистить некоторые сайты, увеличить память и ограничения по времени, возможно, немного разбить работу, а в следующий раз написать что-нибудь более подходящее;)
Если это происходит на стороне сервера, то, вероятно, это должно происходить асинхронно с взаимодействием с пользователем, то есть вместо того, чтобы пользователь запрашивал какую-либо страницу, которая должна сделать все это перед возвратом, это должно происходить в фоновом режиме. Это даже не должен был бы быть PHP, у вас мог бы быть скрипт, работающий на любом языке, который передает переданные вещи и делает это.