@9StarRu

Как дать php скрипту время на выполнение (увеличить)?

Через сторонний сервис создаю скриншоты сайтов с помощью следующего кода

function upload_image($img){
        
    $filename = "/var/www/images/$img.jpeg";
    
        if (file_exists($filename)) {
            echo "Файл $img существует"; // Чем заменить, чтобы пропустить?
            } else {
            $url = "http://mini.s-shot.ru/1024x768/300/jpeg/?https://www.youtube.com/watch?v=$img";
            $path = "/var/www/images/$img.jpeg";
            file_put_contents($path, file_get_contents($url));
        }
        
    }
    
	$img = upload_image("mw9WcQo6aIY");


Чтобы не скачивать изображения после каждого выполнения скрипта, делаю проверку на наличие файла в папке и если его нет, выполняю скрипт - сохраняю картинку.

Скрипт написал сам, как смог.

Столкнулся с проблемой, скрипт выполняется прежде чем сервис успевает создать скриншот, в результате, в большинстве случаев, картинка сохраняется в папке но имеет 0 B размер, т.е. пустая.

Свою задачу скрипт не выполняет.

Как увеличить время выполнения скрипта, чтобы скриншот успевал создаться?

Чем заменить строку echo "Файл $img существует";, можно просто закомментировать?

Спасибо!
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 3
VlastV
@VlastV
Ведущий разработчик – практик
Если верно понял проблему, то решение:

set_time_limit(0);

function upload_image($img){
    $filename = "/var/www/images/$img.jpeg";
    
    if (file_exists($filename)) {
        return;
    }

    $url = "http://mini.s-shot.ru/1024x768/300/jpeg/?https://www.youtube.com/watch?v=$img";
    $path = "/var/www/images/$img.jpeg";
    file_put_contents($path, file_get_contents($url));        
}
    
$img = upload_image("mw9WcQo6aIY");
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
sleep()
Ответ написан
Комментировать
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Вам нужен не file_get_contents, а полноценный curl. Там можно поставить время ожидания ответа в опциях, а тут нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы