<?php
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
die("超时");
/* Don't execute PHP internal error handler */
return true;
}
//ini_set('html_errors', false);
set_error_handler("myErrorHandler");
trigger_error("d",E_ERROR);//这个错误可以调用myErrorHandler,但是下面的超时错误不能myErrorHandler.
set_time_limit(1);
sleep(2);
?>
请高手帮下忙,能不能判断?如果能的话,怎么判断?

解决方案 »

  1.   

    刚才又试验了下register_shutdown_function
    <?php
    function test(){
    $c=ob_get_clean();
    die("sdf".$c);
    }
    register_shutdown_function("test");ob_start();function myErrorHandler($errno, $errstr, $errfile, $errline)
    {
    die("超时");
    /* Don't execute PHP internal error handler */
    return true;
    }
    ini_set('html_errors', false);
    set_error_handler("myErrorHandler");
    set_time_limit(1);
    sleep(2);
    ?>
    手册上好像说php4 register_shutdown_function
    不能支持输出流函数,php5试验了下可以.不知道php4怎么办?有高手嘛.发现csdn真的很冷清.
      

  2.   

    <?php
    set_time_limit(1);ob_start('callback');
    function callback($buffer) {
    if (false !== (stripos($buffer,'Maximum execution'))) {
    $buffer = 'Timeout ~~>_<~~';
    }
    return $buffer;
    }while ($output=true);echo 'Completed ^_^';
    ?>
      

  3.   

    这年头要找个php4都不容易,何苦来着。php5不是挺好用的吗。
      

  4.   

    我也知道php5比php4好用多了,可惜我们公司某些领导偏偏不开窍,没办法! 楼上的yctin 这个好像可以,忘了ob_start();可以回调,我先试验下行不?
      

  5.   

    搞定了 楼上的程序改了下 有误.不过谢谢你的思路.<?php
    function callback($buffer)
    {
      if(strpos($buffer,'Maximum execution')!==false){
      $buffer= 'Time out';
      }
      return $buffer;
    }
    ob_start("callback");?>
    <html>
    <body>
    <p>It's like comparing apples to oranges.</p>
    </body>
    </html>
    <?php
    set_time_limit(1);
    sleep(2);
    ob_end_flush();
    ?>