preg_last_error
返回最後一個PCRE正則執行產生的錯誤代碼
preg_last_error()
函數返回最近評估的正則表達式的錯誤代碼。返回的值將匹配以下常量之一:
常量 | 描述 |
---|---|
PREG_NO_ERROR | 沒有發生錯誤。 |
PREG_INTERNAL_ERROR | 評估表達式時出錯。 |
PREG_BACKTRACK_LIMIT_ERROR | 評估表達式所需的回溯次數超出了PHP 配置中給出的限制。 |
PREG_RECURSION_LIMIT_ERROR | 評估表達式所需的遞歸深度超出了PHP 配置中給出的限制。 |
PREG_BAD_UTF8_ERROR | 輸入字符串包含無效的UTF-8 數據。 |
PREG_BAD_UTF8_OFFSET_ERROR | 在評估過程中,字符串偏移量未指向多字節UTF-8 符號的第一個字符。 |
PREG_JIT_STACKLIMIT_ERROR | JIT 編譯器在嘗試評估表達式時耗盡了堆棧內存。 |
使用preg_last_error()
處理錯誤:
<?php $str = '這個正則表達式是無效的。 ' ; $pattern = '/invalid//' ; $match = @ preg_match ( $pattern , $str , $matches ) ; if ( $match === false ) { // 發生錯誤 $err = preg_last_error ( ) ; if ( $err == PREG_INTERNAL_ERROR ) { echo '正則表達式無效。 ' ; } } else if ( $match ) { // 找到匹配項 echo $matches [ 0 ] ; } else { // 未找到匹配項 echo '未找到匹配項' ; } ?>
preg_last_error ( )