溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php運行超時的解決方法有哪些

發布時間:2020-06-23 11:16:00 來源:億速云 閱讀:234 作者:Leah 欄目:編程語言

php運行超時的解決方法有哪些?針對這個問題,今天小編總結了這篇文章,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

在php中默認腳本執行超時時間為30秒了,如果你未進行設置30秒之后如果你的腳本還未執行完就會超時了,下面我來給大詳解解決PHP腳本執行超時的方法。

php.ini 中缺省的最長執行時間是 30 秒,雖然可以通過調整 php.ini 中 max_execution_time的值來達到目的,但有些情況是沒有條件修改php.ini的,如何解決這個問題呢。

一種方法是在 PHP 腳本中加入

ini_set('max_execution_time', '0');

將運行時間設置成0(無限值);

另一種方法是在命令行下執行腳本,使用命令行執行腳本時,最大運行時間被設置為了無限值。

修改php.ini的腳本執行時間限制

編輯php.ini,修改max_execution_time值:

max_execution_time=500
//此修改需要重新加載php.ini,需要重啟web服務器生效。

  通過.htaccess 文件設置腳本執行時間

php_value max_execution_time 500

  在腳本中設置執行的最大時間

ini_set('max_execution_time', 500);

  用php的函數取消腳本的時間限制

set_time_limit(0);

set_time_limit用來設置腳本的超時時間,此函數規定從該句運行時起程序必須在指定秒數內運行結束,超時則程序出錯退出。

下面是一個例子. 有10000條數據, 要修改其中某些數據,  運用PHP分步執行處理, 代碼如下:

action.php

<?php
 $stid = isset($_GET['stid'])?$_GET['stid']:0;
 $endid = $stid + 100;
 $maxid = 10000;

 function dosomething(){
  //要時間比較多的操作
  ……
 }
 $sql_string=”select *  from `table`  where id>’$stid’ and id<=’$endid’ order by id”;
 $datas = getdata_bysql($sql_string);
 foreach($datas as $data){
  //處理數據
  …..
  echo $id.” 處理完成. <br />”;
  if($id>=$maxid){exit;}
 }
 if($stid<=$maxid){
 $stid = $stid + 100;
 $url=”action.php?stid=$stid”;
 echo $url;
  echo ‘<script language=”javascript”>location=”‘.$url.’”; </script>’;
 }
?>

其中的dosomething()是一個耗時操作.  這里我們通過限制id范圍來減少運行時間,   運行完后通過javascript的跳轉來自動運行下一步

現在dedecms生成html頁面時就是這樣做的哦。

關于php運行超時的解決方法有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女