par
@rthur » 07 juil. 2015, 14:12
J'ai modifié ton code pour avoir les messages d'erreur de preg :
<?php
$contenu=file_get_contents('bug.txt');
function test($filtre) {
global $contenu;
echo $filtre," : ";
if ( preg_match($filtre,$contenu) ) echo "Ok\n"; else echo "KO : ".array_flip(get_defined_constants(true)['pcre'])[preg_last_error()]."\n";
}
test("#.*?End#us");
test("#End#us");
Le message d'erreur obtenu est "PREG_BACKTRACK_LIMIT_ERROR" et après pas mal de recherche, j'ai trouvé une solution grâce à
Moodle et
Mediawiki qui ont été confrontés au même problème
La solution est donc d'augmenter le paramètre pcre.backtrack_limit avec la commande suivante à mettre en haut de ton fichier PHP :
ini_set( 'pcre.backtrack_limit', '2M' );
Et là... magie, ça marche !
