2015-01-26 4 views
0

저는 imagick을 사용하여 pdf 문서의 축소판을 만듭니다. 내가 PHP에서 imagick 치명적인 오류를 catch하는 방법

$imagick->readImage($file .'[0]'); 

나는 시도 캐치에 포장을 시도했지만 내가 배운대로 치명적인 오류가 아닌 예외이기 때문에 그 작동하지 않습니다 ..이 라인에 치명적인 오류가 발생합니다. 어떻게하면이 오류를 정상적으로 잡을 수 있습니까?

PHP를 사용하여 imagick 문제를 해결하는 것보다 오류를 감지하는 것이 더 중요합니다. 오류 수가 사용자의 pdf 파일에 나타날 수 있기 때문입니다. 감사!

+2

* * 오류? – PeeHaa

+0

@PeeHaa OP는 구체적으로 중요하지 않다고 말합니다. – Marek

+0

@Marek 어떤 게시물을 읽고 계십니까? – PeeHaa

답변

-1

당신은 set_error_handler 사용하여 사용자 지정 오류 처리기를 설정할 수 있습니다 : 그것은 실패 이유에 당신에게 통찰력을 제공하고 잘하면 첫 번째 장소에서 일어나는 것을 방지 할 수있는 서버 오류 로그에 표시해야

function exceptionErrorHandler($errno, $errstr, $errfile, $errline) {  
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline); 
} 

set_error_handler("exceptionErrorHandler"); 
0

. 그것 이외에, 그것은 당신이 무엇을하려고하는지에 달려 있습니다. 내 이미지를 크기 조정하고 미리보기 이미지를 만들기 위해 내 것을 사용하므로 내 수표가 관련되어 있습니다. imagick은 정확한 크기를 보여주고 섬네일이 존재하며 파일 크기가 0보다 큰 것입니다.

1

불행히도 PHP에서는 치명적인 오류를 잡을 수 없습니다. 이것은 주어진다. 여전히 할 수있는 일이 몇 가지 있습니다.

  1. register_shutdown_function()을 사용하여 등록 된 기능은 여전히 ​​실행됩니다. 그런 기능에 오류가 생길 수 있으며 readImage()이 성공하면 빈 기능을 등록하십시오.

  2. 썸네일 생성을 PHP 명령 줄 스크립트에 넣고 exec('php thngenerate.php ' . escapeshellarg($file .'[0]'), $out, $return_var);을 사용하여 실행할 수 있습니다. $return_var != 0 인 경우 오류가 발생했습니다.

  3. # 2와 비슷하지만 스크립트를 http를 사용하여 호출합니다. 이번에는 내부 서버 오류를 확인합니다.

관련 문제