source

PHP 및 MySQL에서 경고 및 오류 끄기

factcode 2022. 9. 16. 23:01
반응형

PHP 및 MySQL에서 경고 및 오류 끄기

예상된 알림과 경고가 표시되므로 PHP 파일에서 해제하고 싶습니다.에러는 다음과 같습니다.

Warning: fsockopen()

그리고 통지는 다음과 같습니다.

Notice: A non well formed numeric value encountered in

이 PHP 스크립트에 cron을 사용할 예정이므로 오류나 알림이 기록되는 것을 원하지 않습니다.

스크립트가 완벽하게 동작하고 있는 것이 확인되면 다음과 같은 경고 및 알림을 제거할 수 있습니다.PHP 스크립트의 선두에 다음 행을 넣습니다.

error_reporting(E_ERROR);

그 전에 스크립트를 작성할 때 모든 알림이나 경고가 하나씩 사라지도록 스크립트를 적절히 디버깅하는 것이 좋습니다.

따라서 먼저 다음을 사용하여 가능한 한 상세하게 설정해야 합니다.

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

업데이트: 오류를 표시하지 않고 기록하는 방법

코멘트에서 제안했듯이, 더 나은 해결책은 오류 메시지를 사용자가 아닌 PHP 개발자만 볼 수 있도록 파일에 기록하는 것입니다.

구현은 .htaccess 파일을 사용하여 실행할 수 있으며, php.ini 파일(소스)에 액세스할 수 없는 경우에 유용합니다.

# Suppress PHP errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0

# Enable PHP error logging
php_flag  log_errors on
php_value error_log  /home/path/public_html/domain/PHP_errors.log

# Prevent access to PHP error log
<Files PHP_errors.log>
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

모든 오류 보고 기능을 끄는 대신 '@' 기호를 사용하여 특정 오류를 억제합니다.

상세정보 : http://php.net/manual/en/language.operators.errorcontrol.php

PHP는 하나의 오류 제어 연산자(@)를 지원합니다.PHP 식 앞에 추가되면 해당 식에서 발생할 수 있는 오류 메시지는 무시됩니다.

@fsockopen();

PHP 오류_보고 참조:

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

테스트 서버에 항상 오류를 표시합니다.프로덕션 서버에서 오류를 표시하지 마십시오.

페이지가 로컬 서버, 테스트 서버 또는 라이브 서버 중 어느 쪽에 있는지 확인하는 스크립트를 작성하고 $state를 "local", "testing" 또는 "live"로 설정합니다.그 후, 다음과 같이 입력합니다.

if( $state == "local" || $state == "testing" )
{
    ini_set( "display_errors", "1" );
    error_reporting( E_ALL & ~E_NOTICE );
}
else
{
    error_reporting( 0 );
}

어떤 이유로 php.ini 파일에 접근할 수 없는 경우 stdout 에러를 비활성화합니다(display_errors디렉토리내의 .htaccess 파일에 격납하려면 , 다음의 행을 추가합니다.

php_flag display_errors off

또한 파일에 오류 로깅을 추가할 수 있습니다.

php_flag log_errors on

php.ini에서 필요한 오류 보고서 유형을 설정하거나 스크립트 위에 error_reporting() 함수를 사용하여 설정할 수 있습니다.

언급URL : https://stackoverflow.com/questions/1645661/turn-off-warnings-and-errors-on-php-and-mysql

반응형