probleme entre fonction et regex [résolu] - PHP - Programmation
Marsh Posté le 22-02-2006 à 22:47:50
1- essaye la fonction ereg() plutot
2- laisse tomber les accents, tout ce qui est à l intérieur d un attribut HTML (donc href) doit être passé à htmlentities() qui se charge des accents
Marsh Posté le 22-02-2006 à 23:13:13
j'utilise déjà le htmlentities() sur ma variable $article. Je suis vraiment dans le flou et je ne connais pas ereg(). J'ai fait le tour des site qui traite de la fonction ereg() mais je ne comprend rien. Je ne suis pas programmeur de base donc j'ai vrt du mal avec le codage.
Marsh Posté le 23-02-2006 à 11:12:19
Pour créer des adresses il y a "urlencode". C'est fait pour ça alors autant l'utiliser.
"htmlentities" est faite pour afficher sans risque ni ambiguité du texte dans un navigateur. Elle n'est pas faite pour modifier des adresses.
Marsh Posté le 23-02-2006 à 11:35:22
exact, il manque urlencode:
href=htmlentities(urlencode(url))
Citation : |
...Ainsi que dans les attributs des tags.
Marsh Posté le 23-02-2006 à 21:14:42
Merci à vous deux pour vos réponse. j'ai finalement choisi d'utiliser ereg_replace et mon système marche bien maintenant.
Marsh Posté le 24-02-2006 à 09:06:18
preg est nettement plus efficace pourtant (rapidité/fonctionnalités)
et urlencode tout seul suffit (=> F%EBanor et non F%26euml%3Banor par exemple)
Marsh Posté le 24-02-2006 à 15:11:44
De w3.org:
Tag <A>, attribut href, type %URI de type CDATA:
Citation : |
Marsh Posté le 24-02-2006 à 15:28:34
nargy > traduction :
F%EBanor sera retransformé en Fëanor
F%26euml%3Banor sera retransformé en F%EBanor
F%26euml%3Banor ne sera pas retransformé en Fëanor
Les entités de caractéres étant retransformé en caractére normal mais il n'est pas prévus que ca soit fait de maniére récursive.
Marsh Posté le 22-02-2006 à 22:30:09
Bonsoir,
Je réalise une encyclopédie sur le seigneur des anneaux et pour tous ceux qui connaissent, beaucoup de nom contiennent des accents. Ce n'est pas un problème en soi mais j'ai du mal pour créer mes liens car j'utilise un script en php qui me permet d'éditer mes articles via mon site.
Donc j'ai utilisé dans mon script une regex pour créer mes liens :
Les liens marchent bien sous mozilla mais pas sous i.e qui ne lit pas les liens avec des accents (ex: Fëanor.html). J'ai donc décidé d'enlever les accents et les blancs avec une fonction :
Le code ne marche pas mais j'ai essayé de trouver une solution et j'ai fait ça:
puis après validation de mon script "d'édition", il écrit ce code dans mon article :
Cependant il ne m'écrit pas Fëanor mais Fëanor donc il ne me remplace pas mes accents et il m'écrit comme lien F_euml_anor.html.
Donc je voulais savoir si c'était possible de remplacer mes accents directement dans la regex ?
N'étant pas programmeur de formation je suis à court d'idée
Je vous remercie d'avance pour vos réponses
Message édité par Droopy4ever le 23-02-2006 à 21:14:58