Les RegExp dans preg_match fonction de retour d'erreur de navigateur

La fonction suivante rompt avec les regexp, que j'ai fourni dans le $motif variable. Si je change la regexp, je suis bien, donc je pense que c'est le problème. Je ne vois pas le problème, cependant, et je ne suis pas la réception d'un standard d'erreur PHP, même s'ils sont sous tension.

function parseAPIResults($results){
//Takes results from getAPIResults, returns array.

    $pattern = '/\[(.|\n)+\]/';
    $resultsArray = preg_match($pattern, $results, $matches);

}

Firefox 6: La connexion a été réinitialisée

Chrome 14: Erreur 101 (net::ERR_CONNECTION_RESET): La connexion a été
réinitialiser.

IE 8: Internet Explorer ne peut pas afficher la page web

Mise à JOUR:

Apache/PHP peut être de s'écraser. Voici le journal des erreurs d'Apache à partir de quand je lance le script:

[Sam Oct 01 11:41:40 2011] [avis] Parent de l'enfant: processus est sorti avec
le statut de 255 -- le Redémarrage.

[Sam Oct 01 11:41:40 2011] [avis]
Apache/2.2.11 (Win32) PHP/5.3.0 configuré -- reprise normale
les opérations de

L'exécution de WAMP 2.0 sur Windows 7.

  • si vous recherchez une . ou une nouvelle ligne?
  • Je suis à la recherche d'un . ou une nouvelle ligne à l'intérieur des parenthèses. L'expression rationnelle vérifie sur regexpal.com
  • Vous avez peut-être droit. Voici le journal des erreurs d'apache à partir du moment où je lance le script: [Sam Oct 01 11:41:40 2011] [avis] Parent de l'enfant: processus terminé avec le statut de 255 -- le Redémarrage.
  • L'incident que vous voyez n'est pas nouvelle et est due suis non gérée débordement de pile dans la librairie PCRE en raison d'une certaine classe de regex être appliquée à un largish chaîne. La mise à niveau de PHP vers la version la plus récente (5.3.8) ne va pas aider. Je suis actuellement en train de travailler sur une réponse détaillée à cette question en ce moment (il n'est pas trivial). Veille... En attendant, vous pouvez jeter un oeil à la façon dont ce problème a affecté le projet Drupal un moment de retour: Optimiser le CSS causes de php en mode cgi pour erreur de segmentation dans pcre de la fonction "match"
  • Oui. Histoire courte: PHP pcre.recursion_limit par défaut est de 100 000 qui est trop élevé. Cette valeur doit être réglée à la taille de la pile divisé par 500 selon la PCRE de la Documentation. Pour une version Win32 de httpd.exe, (avec ses 256 ko de pile), pcre.recursion_limit doit être mis à 524. Sur les systèmes *nix, (avec exécutables généralement avoir une 8MB de la pile), il doit être réduit à 16777.
InformationsquelleAutor user974552 | 2011-10-01