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

解決php運行超時的方法

angryTom
發布: 2023-04-07 10:14:02
原創
11363 人瀏覽過

解決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中文網其他相關文章!

相關標籤:
php
來源:解决php运行超时的方法
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板