|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : février 2003 Messages : 89 ![]() |
Bonjour à tous
j'utilise un socket pour récupérer le code HTML d'une page. ensuite, j'essaye de le parser, pour retrouver des bouts d'HTML, et en ressortir des données. petit hic : ereg ne me retrouve pas les chaines avec des accents :/ voici mon format regex : <a href="viewforum.php\?f=([0-9]{1,})&sid=[[:alnum:]]{32}" class="forumlink">([[:graph:][:space:]]*)</a> ce qui pose problème, c'est [[:graph:][:space:]]*. pour info, mon fichier .php est encodé en utf8, je sais pas si ça peut changer quelque chose. sachant que j'ai essayé utf8_encode et utf8_decode sur l'HTML récupéré via le socket, sans changement sur le ereg. quelqu'un a une idée ? |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
bonjour,
Peux tu nous donner un exemple d'URL a analyser stp, ce qui répondrait a mes questions : et avec eregi? et pourquoi pas [:alnum:] à la place de [:graph:] |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : février 2003 Messages : 89 ![]() |
oups désolé, voila le type d'HTML que j'ai à trouver, parmi tout le code HTML d'une page :
pas trouvé <a href="viewforum.php?f=38&sid=6ca865271bda5ca3c68777798ba82909" class="forumlink">[TA] News - Bugs - Idées</a> trouvé <a href="viewforum.php?f=38&sid=6ca865271bda5ca3c68777798ba82909" class="forumlink">[TA] News - Bugs - Idees</a> je n'utilise pas erregi parceque je préfère tenir compte de la casse. j'utilise [:graph:] et non pas [:alnum:] parceque graph prend en compte tous les caractères possibles (enfin, imprimables), d'après ce que j'ai compris. mais c'est mon premier regex, donc je galère un peu |
|
|
00
|
|
|
#4 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Vos locales sont-elles correctes ? (cf phpinfo).
Il est préférable aujourd'hui d'utiliser l'extension PCRE aux fonctions POSIX (ereg) : Citation:
|
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : février 2003 Messages : 89 ![]() |
c'est à dire, mes locales sont-elles correctes ? je voudrais un code qui ne s'occupe pas du pays où est hébergé la page
|
|
|
00
|
|
|
#6 | |
|
Membre habitué
![]() Inscription : décembre 2006 Messages : 109 ![]() |
quant julp parle des locales, il réfère aux règles sur ton serveur que les fonctions liées aux chaines de caractères sur ton serveur se conformeront, et non aux documents externes à ton espace internet.
devrait retourner pays, langue et charset sur ton serveur pour les fonctions sur les chaines de caractères. Citation:
|
|
|
|
00
|
|
|
#7 | |||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Vous ne récupérez pas les accents car la classe POSIX stricte (cas des fonctions ereg*) [:graph:] équivaut à [!-~] donc les caractères du code ASCII étendu (>= à 128) - dont fait partie les caractères accentués - ne correspondront jamais. On retrouve le problème avec [:alnum:] (équivalent de [A-Za-z0-9]). PCRE en revanche utilise les informations des locales donc les accents (entre autres) ne lui poseront pas de problèmes (à condition que l'environnement soit convenablement configuré). Vous l'ignorez peut être mais vous utilisez également les locales lors de simples comparaisons de chaînes.
Un petit test : Code :
Citation:
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com