PHP指令碼執行逾時的解決辦法_PHP教程

來源:互聯網
上載者:User
在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

代碼如下 複製代碼

$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.” 處理完成.
”;
if($id>=$maxid){exit;}
}
if($stid<=$maxid){
$stid = $stid + 100;
$url=”action.php?stid=$stid”;
echo $url;
echo ‘’;
}
?>

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

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

http://www.bkjia.com/PHPjc/632105.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632105.htmlTechArticle在php中預設指令碼執行逾時時間為30秒了,如果你未進行設定30秒之後如果你的指令碼還未執行完就會逾時了,下面我來給大詳解解決PHP指令碼執行...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.