2009-11-04 75 views
2

我從下面的代碼片斷:錯誤HANDELING回報空白

switch ($extention) 
{ 
case "gif": $src = @imagecreatefromgif($uploadedfile); break; 
case "jpeg": $src = @imagecreatefromjpeg($uploadedfile); break; 
case "png": $src = @imagecreatefrompng($uploadedfile); break; 
default: $src = @imagecreatefromjpeg($uploadedfile); break; 
} 

if(!$src) 
die("Error: Could not upload image code:#011"); 

腳本終止,但不會返回錯誤。有人知道爲什麼

回答

0

由於有外部的操作被建議暫時刪除@符號,以找出哪個imagecreatefrom ...正在打破你的腳本,一旦你調試它把它們放回去。另外,因爲你已經在imagecreatefrom ...函數之後回顯foo,所以它將永遠不會打印出來。

編輯點評AFTER:

好了,如果你想自己處理只是用@將無法正常工作的錯誤,它會抑制消息,但沒有發生致命錯誤的事實。您需要設置一個錯誤處理程序,請查看here瞭解關於此的信息。

+0

這是JPEG格式 – 2009-11-04 09:39:03

+0

好吧,是什麼錯誤被拋出? – RMcLeod 2009-11-04 09:51:38

+0

沒關係我的觀點。帶走@符號並返回 致命錯誤:內存不足(已分配31981568)(嘗試分配13056字節)在/home/sites/snowyswebsolutions.co.uk/public_html/ACTfileUploader/uploader.php上線90 i想要禁止那個錯誤並返回我自己的,但它返回空白 – 2009-11-04 10:15:58

0

@-operator禁止錯誤,刪除它們。

+0

我知道,用於如果你自己處理錯誤(底部2行) – 2009-11-04 09:14:58

+0

@Phil不,但我想你現在已經想通了:)指針,總是調試沒有錯誤抑制和'error_reporting(E_ALL | E_STRICT )'。 – chelmertz 2009-11-04 13:01:05

1

它在哪裏結束?如果這是你的整個腳本,那麼很自然你不會得到任何輸出(你不輸出任何東西)。試着把echo -statements放在這裏,然後找到腳本中斷的那一行。

編輯澄清後回答:

你抓不到在PHP中的內存不足的錯誤,這是根本不可能的(什麼,你會怎麼做呢就需要更多的內存)。您甚至無法預先檢查內存是否可用,因爲您無法知道10kb jpeg圖像需要多少內存(取決於圖像的尺寸,顏色深度等)。

只有我能想到的處理這些錯誤的方法是讓PHP(呼叫使用exec()的腳本或使用exec()與ImageMagick的做或類似)

+0

謝謝,我現在明白了 – 2009-11-04 10:57:41

0
echo "bar"; 
switch ($extention) 
{ 
    case "gif": $src = @imagecreatefromgif($uploadedfile); echo "foo"; break; 
    case "jpeg": $src = @imagecreatefromjpeg($uploadedfile); echo "foo"; break; // best quality 
    case "png": $src = @imagecreatefrompng($uploadedfile); echo "foo"; break; // no compression 
    default: $src = @imagecreatefromjpeg($uploadedfile); echo "foo"; break; // best quality 
} 

echo "foo"; 
if(!$src) 
    die("Error: Could not upload image code:#011"); 
echo "foo foo"; 

返回「酒吧」

+0

您應該在下次編輯您的問題以提供其他信息(sop人們不必查看答案部分以獲得整個問題。)如果刪除'@'-operator ? – soulmerge 2009-11-04 09:25:39

+0

我應該如何在這裏輸入可讀代碼? – 2009-11-04 09:39:39

+0

只要把它放在裏面,我們將格式化 – soulmerge 2009-11-04 10:13:02