2013-02-21 2 views
0

문자열에 정규 표현식이 포함되어 있으며 PHP에서 유효한 문자열인지 확인하려고합니다. 일반적으로, 나는 우리가 그것을 억제하는 @을 사용하기 때문에 괜찮 경고를 생성하는 다음과 같은 방법으로경고를 던지지 않고 정규식을 확인하십시오.

<?php 
@preg_match($string, '') !== false; 

에서이 작업을 수행 할 것입니다. 그러나 @ supressor에도 불구하고 핸들러가 계속 트리거되므로 오류를 catch하기 위해 set_error_handler을 사용할 때 문제가 발생합니다.

경고를 표시하지 않고 제공된 코드와 비슷한 것을하고 싶습니다.

던져 경고는 다음과 같습니다

preg_match(): Delimiter must not be alphanumeric or backslash 
+0

"오류를 잡으려면"예외를 의미합니까? 그렇다면 try/catch 블록 내에서'preg_match' 호출을 감싸기 만하면됩니다. –

+0

preg_match는 예외를 throw하지 않고 PHP 오류 만 발생시킵니다. – Nathaniel

답변

3

은 그냥 오류 처리기이 추가 :

function user_error_handler($severity, $msg, $filename, $linenum, $content) { 
    if (0 == (error_reporting() & $severity)) return; 
    ... 
} 

를이 경우, @ 연산자, error_reporting()은 0

를 반환하기 때문에
관련 문제