国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP腳本執行超時的解決辦法

2024-05-04 21:56:39
字體:
來源:轉載
供稿:網友

在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

  1. <?php 
  2. $stid = isset($_GET['stid'])?$_GET['stid']:0; 
  3. $endid = $stid + 100; 
  4. $maxid = 10000; 
  5. function dosomething(){ 
  6. //要時間比較多的操作 
  7. …… 
  8. $sql_string=”select *  from `table`  where id>’$stid’ and id<=’$endid’ order by id”; 
  9. $datas = getdata_bysql($sql_string); 
  10. foreach($datas as $data){ 
  11. //處理數據 
  12. ….. 
  13. echo $id.” 處理完成. <br />”; 
  14. if($id>=$maxid){exit;} 
  15. if($stid<=$maxid){ 
  16. $stid = $stid + 100; 
  17. $url=”action.php?stid=$stid”; 
  18. echo $url
  19. echo ‘<script language=”javascript”>location=”‘.$url.’”; </script>’; 
  20. ?> 

其中的dosomething()是一個耗時操作,這里我們通過限制id范圍來減少運行時間,運行完后通過javascript的跳轉來自動運行下一步,現在dedecms生成html頁面時就是這樣做的哦。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金堂县| 洛浦县| 达州市| 富蕴县| 彰化市| 宝清县| 论坛| 甘孜县| 胶南市| 博乐市| 泰顺县| 松滋市| 正阳县| 肇庆市| 河源市| 封开县| 稷山县| 二连浩特市| 余江县| 洛宁县| 东乌珠穆沁旗| 英山县| 宁晋县| 白银市| 郸城县| 泽普县| 巴林右旗| 昌宁县| 株洲县| 宜宾市| 当雄县| 北票市| 江川县| 饶平县| 徐州市| 绥德县| 开原市| 漠河县| 齐齐哈尔市| 张掖市| 右玉县|