douyou2234 2015-03-06 09:22
浏览 90
已采纳

PHP超时错误处理

I'm triyng to catch timeout error to output some clear text to the user (like "Sorry, timeout"). So why does this example:

function shutdown() { 
    $a=error_get_last(); 
    if($a==null)   
        echo "No errors"; 
    else 
         print_r($a); 

} 
register_shutdown_function('shutdown'); 
ini_set('max_execution_time',1 ); 
sleep(3); 

output no errors?? I'm confused about it. Here this example looks helpful. Thanks

  • 写回答

1条回答 默认 最新

  • dougong8012 2015-03-06 09:48
    关注

    Try not using sleep(), seems to work if the reason for timeout is real work:

    Example

    function isPrime($num) {
        if($num == 1)
            return false;
        if($num == 2)
            return true;
        if($num % 2 == 0) {
            return false;
        }
        for($i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) {
            if($num % $i == 0)
                return false;
        }
        return true;
    }
    function shutdown() 
    { 
         $a=error_get_last(); 
         if($a==null)   
             echo "No errors"; 
         else 
              print_r($a); 
    } 
    register_shutdown_function('shutdown'); 
    ini_set('max_execution_time',1 ); 
    $ps = 0;
    for ($i = 0; $i < 1000000; $i++) {
        if (isPrime($i)){
            $ps++;
        }
    }
    echo $ps;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题