Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2008, 17h07   #1
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Par défaut [Tableaux] Convertir les accent, et seulement ceux-ci, en leur entité HTML respective

Bonjour,

je cherche une fonction qui permet de convertir tous les accents en HTML sans que celle-ci ne touche au balises HTML.

Il y a htmlentities () mais le problème c'est qu'elle convertit aussi les balises comme par exemple <br>, du coups le <br> n'est plus interprété comme une balise HTML... donc en clair je cherche une fonction qui ne convertit pas les <> !

Voila quelqu'un a-t-il une idée ?
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 10h36   #2
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Bon pour le moment je n'ai trouvé que la solution suivante :

Code :
1
2
3
4
 
$trans = array("à" => "&agrave;", "À" => "&Agrave;", "á" => "&aacute;", "Á" => "&Aacute;", "â" => "&acirc;", "Â" => "&Acirc;", "ä" => "&auml;", "Ä" => "&Auml;", "ã" => "&atilde;", "Ã" => "&Atilde;", "å" => "&aring;", "Å" => "&Aring;", "è" => "&egrave;", "È" => "&Egrave;", "é" => "&eacute;", "É" => "&Eacute;", "ê" => "&ecirc;", "Ê" => "&Ecirc;", "ë" => "&euml;", "Ë" => "&Euml;", "ì" => "&igrave;", "Ì" => "&Igrave;", "í" => "&iacute;", "Í" => "&Iacute;", "î" => "&icirc;", "Î" => "&Icirc;", "ï" => "&iuml;", "Ï" => "&Iuml;", "ò" => "&ograve;", "Ò" => "&Ograve;", "ó" => "&oacute;", "Ó" => "&Oacute;", "ô" => "&ocirc;", "Ô" => "&Ocirc;", "ö" => "&ouml;", "õ" => "&otilde;", "Õ" => "&Otilde;", "ø" => "&oslash;", "Ø" => "&Oslash;", "ù" => "&ugrave;", "Ù" => "&Ugrave;", "ú" => "&uacute;", "Ú" => "&Uacute;", "û" => "&ucirc;", "Û" => "&Ucirc;", "ü" => "&uuml;", "Ü" => "&Uuml;", "ÿ" => "&yuml;", "Ÿ" => "&Yuml;", "ñ" => "&ntilde;", "Ñ" => "&Ntilde;", "ç" => "&ccedil;", "Ç" => "&Ccedil;", "¿" => "&iquest;", "Æ" => "&Aelig", "æ" => "&aelig;", "ý" => "&yacute;", "€" => "&euro;");
 
echo strtr("tototititutu", $trans);
j'ai mis 30min à faire cette table à la co* lol, alors si vous avez une autre solution faites moi signe
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 10h52   #3
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Je t'invite à étudier la fonction gethtmltranslationtable.

Dans la documentation PHP, tu découvriras que cette fonction te permet de récupérer un tableau. Tu vires toutes les valeurs qui te sont inutiles et tu utilises ensuite la fonction strstr.

Voici le lien vers la documentation
http://fr3.php.net/manual/fr/functio...tion-table.php

L'exemple 1 est très explicite. Entre la ligne 2 et la ligne 3, il te suffit de virer des éléments du tableau stocké dans la variable $trans
Code :
1
2
3
4
5
6
<?php
$trans = get_html_translation_table(HTML_ENTITIES);
// Ici tu vires les éléments en trop dans le tableau $trans
$str = "Hallo & <Frau> & Krämer";
$encoded = strtr($str, $trans);
?>
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 10h54   #4
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Merci mais je ne comprends pas comment retirer des éléments du tableau car par exemple quand je fais :
Code :
1
2
3
4
5
6
7
8
9
 
$trans = get_html_translation_table(HTML_ENTITIES);
 
 
echo "<br>";
for($i=0; $i<sizeof($trans); $i++)
{
	echo $i." = ".$trans[$i]."<br>";
}
le tableau est vide...
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 11h13   #5
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Ah ok ce n'est pas des numéros mais directement les caractères Bon je vais testé ça alors.
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 11h26   #6
Membre du Club
 
Inscription : avril 2006
Messages : 265
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 265
Points : 66
Points : 66
Donc en résumé, cela donne :
Code :
1
2
3
4
5
6
7
 
$trans = get_html_translation_table(HTML_ENTITIES);
 
unset($trans['<']);
unset($trans['>']);
 
echo strtr("blablabla", $trans);
hacksi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h09.


 
 
 
 
Partenaires

Hébergement Web