1

致命的なエラーが発生したときにページを更新する方法を見つけようとしています。基本的に、私は画像APIにアクセスし、画像をサーバーにコピーしています。また、毎回写真のサムネイル版を作成しています。スクリプトがメモリを割り当てすぎたことを示すエラーメッセージが時々表示されます。このウェブサイトの素敵な人々の助けを借りて、私は解決しようとして数え切れないほどの時間を費やしてきました。そのエラーが発生したときにページを自動的にリロードできれば完璧です。ありがとう!

4

3 に答える 3

0

メモリ不足で何でもできるかどうかはわかりませんが(試したことはありません)、独自のエラーハンドラを定義できます。おそらくhttp://php.net/manual/en/function.set-error-handler.php

編集:

function myErrorHandler($errno, $errstr, $errfile, $errline)
{
  echo "Oh no! Error: $errno, $errstr";
  exit("try sticking a meta redirect here once you get the echo appearing");
}

set_error_handling('myErrorHandler');
// Now write something that runs out of memory, see if handler catches it.
于 2012-10-25T20:08:43.820 に答える
0

そこにエラーがあります。「set_error_handling」ではなく「set_error_handler」である必要があります

set_error_handler('myErrorHandler');

たぶん、このようなものが役立つでしょう。

function myErrorHandler($errno, $errstr, $errfile, $errline)
{
$refresh = '10';
$pathdirectory = "";
echo "Oh no! Error: $errno, $errstr";
echo "<meta http-equiv=\"refresh\" content=\"$refresh;url=$pathdirectory\" />";
}

set_error_handler('myErrorHandler');
于 2013-12-06T19:16:38.410 に答える
0

このコードをレジスタシャットダウンイベントのページの先頭に配置します(PHP 5.2以降でのみサポート)

コードの詳細:致命的またはその他のエラーが発生した場合、phpページがクラッシュまたはシャットダウンすると、このイベントが呼び出され、X($ errorRefreshSecs)秒後に現在のページが自動的に更新されます**

<?php
function shutDownFunction() { 
$error = error_get_last();
// fatal error, E_ERROR === 1
if ($error['type'] === E_ERROR) { 
//do your stuff     
echo "<font color='red'>Oh no! fatal Error: ".$error["message"]." at line number: ".$error["line"]."</font><br>";
$errorRefreshSecs="3";
echo "please auto refresh page after $errorRefreshSecs Secs and try again!<br>";
?>
<meta http-equiv="refresh" content="<?php echo $errorRefreshSecs;?>; URL=<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>">
<?php
}//if end  //if ($error['type'] === E_ERROR) {
}
register_shutdown_function('shutDownFunction');//(only support on PHP 5.2+)
?>
于 2018-12-03T18:02:32.390 に答える