2012-10-25 116 views
0

我想弄清楚如何在發生致命錯誤時刷新頁面。基本上我正在訪問一個圖像api和複製圖像到我的服務器。我每次都會創建一張照片的縮略圖版本。我會每隔一段時間收到一條錯誤消息,指出我的腳本試圖分配太多內存。我花了無數個小時試圖解決這個問題,在這個網站上有很多人的幫助。這將是完美的,我可以在發生錯誤時自動重新加載頁面。謝謝!當重大錯誤發生時,PHP重新加載頁面

回答

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. 
+0

我只是在那個頁面上。這些例子超出了我的舒適程度。我不能理解文檔。 – user1290323

+0

這並不容易閱讀。我會給答案添加一個簡單的例子 –

+0

謝謝!另外,你知道我是否可以使用memory_get_peak_usage()以'X'字節數來分解腳本嗎?像'if(memory_get_peak_usage()> $ x)die(header('Location:http://www.example.com/'));' – user1290323

0

存在錯誤在那裏,它應該是「的set_error_han dler」而不是「set_error_handling」

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');