En appelant page.php3?fond=bug, j'ai le bug suivant d'apache :
Apache.exe - Application Error
The exception unknown software exception (0xc00000fd) occured in the application at location 0x0054a6c8.
En appelant page.php3?fond=bug, j'ai le bug suivant d'apache :
Apache.exe - Application Error
The exception unknown software exception (0xc00000fd) occured in the
application at location 0x0054a6c8.
Peux-tu essayer de desaactiver les differentes lignes de cette regexp, en
partant du bas (commente la ligne "plane 16", puis "planes 4-15" etc) pour
voir ce que apache/win est capable de digerer ? Est-ce que par hasard ce ne
seraient pas les {2} qui feraient planter ? Si oui il suffit de répéter deux
fois ce qui est devant...
Au pire on peut remplacer cette jolie preg_match par autre chose, mais il
faudra trouver une astuce pour que ce soit quand meme assez rapide.
En appelant page.php3?fond=bug, j'ai le bug suivant d'apache :
Apache.exe - Application Error
The exception unknown software exception (0xc00000fd) occured in the application at location 0x0054a6c8.
Peux-tu essayer de desaactiver les differentes lignes de cette regexp, en
partant du bas (commente la ligne "plane 16", puis "planes 4-15" etc) pour
voir ce que apache/win est capable de digerer ?
Donc, j'ai plus le bug en supprimant . '[\x09\x0A\x0D\x20-\x7E]' # ASCII
Il me semble que ce n'est pas une ligne bien pertinente pour détecter de l'utf.
Est-ce que par hasard ce ne
seraient pas les {2} qui feraient planter ? Si oui il suffit de répéter deux
fois ce qui est devant...
Donc, j'ai plus le bug en supprimant . '[\x09\x0A\x0D\x20-\x7E]'
# ASCII
C'est de la magie noire
Il me semble que ce n'est pas une ligne bien pertinente pour détecter de
l'utf.
Tu confonds : il ne s'agit pas de détecter de l'utf-8, mais de contrôler si,
oui ou non, la chaîne est valide en utf-8 (c'est-à-dire d'échouer si elle
n'est pas valide). Or les caractères ascii sont bien licites en utf-8.
Donc, j'ai plus le bug en supprimant . '[\x09\x0A\x0D\x20-\x7E]' # ASCII
C'est de la magie noire
Je suis allé un peu plus loin :
ça ça passe : (j'ai remplacé les codes de caractère par les raccourcis d'expression régulières)
. '\t|\n|[\x20-\x7E]' # ASCII
Et ça non :
. '\t|\n|\r|[\x20-\x7E]' # ASCII
>> Donc, j'ai plus le bug en supprimant . '[\x09\x0A\x0D\x20-\x7E]'
>> # ASCII
>
> C'est de la magie noire
Je suis allé un peu plus loin :
ça ça passe : (j'ai remplacé les codes de caractère par les raccourcis
d'expression régulières)
. '\t|\n|[\x20-\x7E]' # ASCII
Et ça non :
. '\t|\n|\r|[\x20-\x7E]' # ASCII
C'est le \r qui pose problème
Windows, c'est vraiment une plate-forme qui permet de développer en toute
sérénité.
Donc, si tu remplaces la ligne
'[\x09\x0A\x0D\x20-\x7E]'
par
'[\x09\x0A\x20-\x7E]'
et que tu mets juste avant le preg_match un str_replace("\r", "\n"), ça ne
plante plus ?
Donc, j'ai plus le bug en supprimant . '[\x09\x0A\x0D\x20-\x7E]' # ASCII
C'est de la magie noire
Je suis allé un peu plus loin :
ça ça passe : (j'ai remplacé les codes de caractère par les raccourcis d'expression régulières)
. '\t|\n|[\x20-\x7E]' # ASCII
Et ça non :
. '\t|\n|\r|[\x20-\x7E]' # ASCII
C'est le \r qui pose problème
Windows, c'est vraiment une plate-forme qui permet de développer en toute
sérénité.
Je te le fais pas dire...
Donc, si tu remplaces la ligne
'[\x09\x0A\x0D\x20-\x7E]' par
'[\x09\x0A\x20-\x7E]'
et que tu mets juste avant le preg_match un str_replace("\r", "\n"), ça ne
plante plus ?