РЕДАКТИРОВАТЬ : Я понимаю, что эту проблему трудно воспроизвести, но если бы кто-то мог предложить указатели относительно вероятной причины этой проблемы, это было бы очень полезно.
РЕДАКТИРОВАТЬ : По запросу, вот $content
:
http://pastebin.com/raw.php?i=tHecParp
Это извлеченная веб-страница. create|exited|deleted|updated
образцы, я ищу ключевое слово المحتجين в этом.
Следующий код выполняется непрерывно внутри цикла while:
$pattern = "/(create|exited|deleted|updated)/";
$num_found = preg_match_all( $pattern, $content, $matches );
var_dump( $num_found );
if( $num_found === false )
{
if (preg_last_error() == PREG_NO_ERROR) {
var_dump( 'There is no error.' );
}
else if (preg_last_error() == PREG_INTERNAL_ERROR) {
var_dump( 'There is an internal error!' );
}
else if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
var_dump( 'Backtrack limit was exhausted!' );
}
else if (preg_last_error() == PREG_RECURSION_LIMIT_ERROR) {
var_dump( 'Recursion limit was exhausted!' );
}
else if (preg_last_error() == PREG_BAD_UTF8_ERROR) {
var_dump( 'Bad UTF8 error!' );
}
else if (preg_last_error() == PREG_BAD_UTF8_ERROR) {
var_dump( 'Bad UTF8 offset error!' );
}
}
Я просто ищу несколько ключевых слов в текстовом файле , считанном в $content
.
выход
int(1)
int(1)
int(1)
int(1)
int(1)
bool(false)
string(18) "There is no error."
bool(false)
string(18) "There is no error."
bool(false)
string(18) "There is no error."
Пару раз находит одно ключевое слово, затем начинает возвращать false. Во время тестирования я сохранил $content
константу . Поэтому он должен продолжить поиск ключевых слов, вместо этого он возвращает false. Но preg_last_error()
не помогает.
Может кто-нибудь объяснить, почему я получаю ложное?