前言
在使用PHP
渲染頁(yè)面頁(yè)面的時(shí)候,如果程序處理的時(shí)間特別久氮惯,超過(guò)配置文件(php.ini)設(shè)置的超時(shí)時(shí)間剃根,就會(huì)出現(xiàn)如下提示:
Maximum execution time of 30 seconds exceeded
例如:導(dǎo)入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中;請(qǐng)求資源時(shí)間過(guò)長(zhǎng)……
問(wèn)題
PHP程序超時(shí)發(fā)生錯(cuò)誤提示怎么辦柿赊?
方法
- 直接修改配置文件(php.ini)[超時(shí)]
#默認(rèn)的最大執(zhí)行時(shí)間是30s途乃,可根據(jù)自己的需求做修改
#如果是0绍傲,即永不過(guò)期
max_execution_time = 30;
- 間接修改配置信息[超時(shí)]
在php執(zhí)行文件中加入如下代碼:
set_time_limit(0);
- 刷新輸出緩沖[內(nèi)存超限]
- 在循環(huán)當(dāng)中做延遲執(zhí)行:加入函數(shù)
sleep(time)
- 輸出緩沖:同時(shí)使用
ob_flush()
和flush()
函數(shù)將數(shù)據(jù)發(fā)送到瀏覽器
- 在循環(huán)當(dāng)中做延遲執(zhí)行:加入函數(shù)
<?php
for ($i=0; $i < 10000; $i++) {
echo "hello ".printf('%05s',$i).'<br/>';
ob_flush();
flush();
}