Vous utilisez preg_match et vous n’avez aucun résultat avec certain contenu dans le subject ? Si vous êtes sûr de votre pattern et subject, je vous conseille de faire des tests avec un subject de tailles différents. Si vous obtenez un résultat avec un petit contenu et non avec un gros contenu, le problème doit venir de la configuration de php.
Vous pouvez dans un premier temps regarder l’erreur retournée par preg_match en utilisant le code ci-dessous :
if (preg_last_error() == PREG_NO_ERROR) { print 'There is no error.'; } else if (preg_last_error() == PREG_INTERNAL_ERROR) { print 'There is an internal error!'; } else if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) { print 'Backtrack limit was exhausted!'; } else if (preg_last_error() == PREG_RECURSION_LIMIT_ERROR) { print 'Recursion limit was exhausted!'; } else if (preg_last_error() == PREG_BAD_UTF8_ERROR) { print 'Bad UTF8 error!'; } else if (preg_last_error() == PREG_BAD_UTF8_ERROR) { print 'Bad UTF8 offset error!'; }
Si le résultat est PREG_BACKTRACK_LIMIT_ERROR alors il vous faut changer la configuration de php.ini
Pour modifier la configuration, il faut vous rendre dans le fichier de configuration de php.ini, puis changer la valeur pour pcre.backtrack_limit.
Reste à trouver la bonne configuration par rapport à votre besoin.