首頁  >  文章  >  後端開發  >  解決php運行超時的方法

解決php運行超時的方法

angryTom
angryTom原創
2019-08-24 09:27:4611303瀏覽

解決php運行超時的方法

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

推薦手冊php完全自學手冊

#推薦教學:##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[&#39;stid&#39;])?$_GET[&#39;stid&#39;]: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頁面時就是這樣做的哦。

相關文章推薦1.
讓php逾時的方法是什麼 2.
php請求介面逾時如何解決
相關影片推薦
1.獨孤九賤(4)_PHP影片教學

以上是解決php運行超時的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn