2012-03-10 2 views
1

PHP 오류가 항상 페이지 맨 위에 어떻게 표시되는지 알 것입니다. 그걸 막아서 $ var로 바꾸는 방법이 있니? 그런 다음 페이지의 어딘가에 배치 할 수 있습니다.PHP, 특정 지점에 오류를 넣는 방법

+7

이상적으로, 당신은 당신의 코드를 작성합니다. 이것은 가능할뿐만 아니라 우수 사례로 적극 권장됩니다. –

답변

4

예, 어디서나 단순히 오류를 출력하는 것 외에는 이러한 오류가있는 것을 차단하고 수행 할 수 있습니다. 그러나 나는 PHP 오류를 페이지에 우아하게 표시하는 것이 매우 유용하다고 생각하지 않습니다. PHP 오류는 꽤 의미가 없으며, 전혀 발생시키지 않을 것입니다. 하나가 보이면 가능한 한 삐걱 거리며 가능한 빨리 수정해야합니다. 그것들은 개발하는 동안 도움이 될 것입니다. 그 (것)들을 위로 시도하는 것은 부호의 틀린 부분에 시간을 소요하고있다.

프로덕션 환경에서는 이러한 오류가 로그 파일에 기록되고 페이지에 전혀 표시되지 않습니다.

+0

이것은 일종의 일종의 용도입니다. '$ php_errormsg'는 에러를 다르게 처리하기를 원할 때마다 핸들러를 리셋하지 않고 각각의 에러를 개별적으로 처리 할 수있게합니다. – Jon

+0

그러나'$ php_errormsg'는 에러가 발생할 수있는 곳을 예측하고 에러를 처리 한 후에 변수를 지울 것을 요구합니다. 그게 커녕 커스텀 글로벌 에러 핸들러 인 "one-use"입니다. 그리고 그것은 나에게 OP가 글로벌 오류 처리기를 요구하고있는 것처럼 보입니다. – deceze

0

$php_errormsg은 억제 된 오류조차도 이전 오류를 유지합니다.

@fopen('foo.txt', 'w'); 

echo $php_errormsg; // You can put this anywhere you want the error to display 

하나 이상의 오류가 있다고 생각되면 이러한 오류를 배열에 저장할 수 있습니다.

$errors = array(); 

for($files as $f) { 
    @fopen($f, 'w'); 
    $errors[] = $php_errormsg; 
} 

그런 다음 모든 오류를 출력 할 수 있습니다 : 그것은 오류 또는 경고를 생성하지 않도록

print_r($errors); 
    //or 
for($errors as $e) { 
    echo $e; 
} 
+2

php.ini의'log_errors = on'과'display_errors = off'는 훨씬 더 깨끗합니다. – ThiefMaster

관련 문제