ini — получает ограничение времени выполнения в переполнении стека

У меня есть функция, выполнение которой занимает очень много времени (загрузка некоторых внешних изображений в моем случае), и я хочу избежать execution time exceeded ошибка.

Есть ли способ избежать этого (например, разделив загрузку отдельных изображений в один php ‘потоки‘ или что-то типа того) ?

Я не могу поменять execution time limit или любой из ini settings,

Я не могу использовать cron works, как в WordPress, и не могу контролировать платформу конечного пользователя.

-1

Решение

Одной из возможностей является создание скрипта PHP, который загружает один внешнего изображения, и пусть этот скрипт вызывается с помощью Ajax. Затем вы можете создать пользовательский интерфейс с JavaScript, который вызывает этот скрипт PHP для каждого изображения, одно за другим. Может отображаться индикатор выполнения в зависимости от того, сколько изображений уже загружено.

1

Другие решения

Да, ты можешь. Но вам придется разместить или проксировать изображения, которые вы хотите загрузить с помощью чанка, если удаленный сервер не понимает частичную загрузку при передаче.

Затем вам нужно будет заставить ваш скрипт PHP запрашивать изображение кусками на сервере

Запрос

GET /proxy/?url=http://example2.com/myimage.jpg HTTP/1.1
Host: www.example.com
Range: bytes=200-1000

Ответ

HTTP/1.1 206 Partial Content
Date: Tue, 17 Feb 2015 10:50:59 GMT
Accept-ranges: bytes
Content-range: bytes 200-1000/6401
Content-type: image/jpeg
Content-length: 800

У вас будет много вариантов вызывать ваш php-скрипт достаточно раз, чтобы получить все фрагменты: автоматически обновлять страницу, ajax-запрос, …

0

По вопросам рекламы [email protected]