У меня есть сценарий, который в основном очищает вещи.Избегайте максимального времени выполнения со счетом - PHP
Одна части сценария требует проверки, если есть изображения, используя file_get_contents
Я ЗНАТЬ это собирается столкнуться с проблемами, и я собираюсь получить Fatal error: Maximum execution time of 30 seconds exceeded
время от времени, и хочу, чтобы избежать этого.
Есть ли способ установить счетчик, который начинает отсчет, и если file_get_contents завершится с ошибкой через 25 секунд, сценарий игнорирует, то выполняется.
Я скажу, я знаю, что могу, но я не хочу увеличивать срок.
Это базовый сценарий:
$query = "select table_id, image_url from table";
$res = $mysqli->query($query) or trigger_error($mysqli->error."[$query]");
while($row = $res->fetch_array()){
// save the image
$img = '/path/to/'.$row[table_id].'.jpg';
//## need to start counting to 25 secs here
$saveImage = file_put_contents($img, file_get_contents($row[image_ur]));
//## check if 25 seconds realised, if so with no $saveImage then continue
if($saveImage){
// do something else
}
}
См: [Timeout функция в PHP] [1] [1]: http://stackoverflow.com/questions/10587323/timeout-a-function-in-php –
Ну, если максимальное время выполнения истекает, тогда скрипт умрет, а не цикл, который мы можем обновить через 25 секунд, и переустановим страницу с параметром в качестве последнего индекса, где цикл может снова начинаться с индекса. Для работы с файлами я не уверен, что это можно сделать, но вы можете увеличить максимальное время выполнения. –
'set_time_limit (0);' –