|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : mai 2007 Messages : 180 ![]() |
Bug concernant le traitement des expressions rationnelles par preg_match_all().
pour info :je suis PHP Version 5.2.2 sous XP sp2. Je code des fonctions qui extraient des positions GPS dans différents formats. Entre autre, je repère des séquences du genre "chaine entre 2 expressions rationnelles". Lors de mes tests je suis tombé sur un cas "Dr Watson" (plantage php.exe).J'ai réduit au plus simple le code pour essayer de trouver ce qui gène notre Docteur préféré (Dans le code complet les recherches sont plus complexes) qui s'énerve avec un : "L'application, C:\wamp\php\php.exe, a généré une erreur d'application L'erreur s'est produite le 05/21/2007 à 22:31:50.312 L'exception générée était c0000005 à l'adresse 10154DB8 (php5ts!php_pcre_get_substring_list)" En activant-désactivant les commentaires je me suis aperçu que si j'active seulement $position_string='W -3°' , j'ai le plantage violent, alors que si j'active en même temps l'une des lignes au dessus, j'ai un "seulement" "Warning: preg_match_all(): Get subpatterns list failed in ..etc" Voici le tout petit bout de code qui :<?php $position_string='W nimportekoi S';// trouve : W nimportekoi S $position_string='Wn importeko iS';// trouve rien (sans planter) $position_string='W -3°';// plantage Dr Watson $pattern = '`(?i:[E|W]+\p{^L}+.+\p{^L}+[N|S])`'; preg_match_all($pattern, $position_string, $matches); print_r ($matches[0]); ?> "L'homme est un bug ambulant, et l'ordinateur son meilleur moyen d'expression." |
|
|
00
|
|
|
#2 | |||
|
Membre habitué
![]() Inscription : décembre 2006 Messages : 109 ![]() |
tu es certain que les données des positions GPS sont en UTF8?
Citation:
Code :
|
|||
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : mai 2007 Messages : 180 ![]() |
Dans mon cas, la source de données est un simple champ de formulaire (La fonction a pour but final de s'adapter à n'importe quel format de données GPS saisie : Degré Décimal, Degré Minute Seconde Décimal, Degré Minute Décimal, etc.)
Mais ta solution fonctionne très bien. J'ai juste inclue la modif inverse pour un affichage correct. Code :
Merci Daniel, réponse efficace et pro. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com