Page 1 sur 1

Affichage smileys : Accents et parenthèse avec htmlentities

Posté : 01 juin 2014, 21:33
par nico44530
Bonjour,

Avant l'énoncé du problème je précise, dans ma base de donnée le texte est de format brut, les accents, "é" "à" par exemple, sont remplacés par é à etc...
J'utilise htmlentities pour convertir les caractères spéciaux.
Et l'encodage latin1_general_ci pour l'affichage en caractères normaux.
Donc, j'ai une fonction d'affichage de smileys qui utilise preg_replace pour remplacer:

Code : Tout sélectionner

:-) ou :)
en smiley.

Le problème c'est que si je post : "(Testé)"
Dans ma base de donnée, l'affichage en caractères spéciaux : "(Testé)" et en affichage normal (Testé ;).

Voici ma fonction smiley :
function smiley($texte){
     $texte = preg_replace('#;-\)|;\)|:clinoeil:#i',' <i class="smiley" id="Clinoeil"></i> ', $texte);
}
Je ne peux pas changer l'encodage à l'insertion de ma base de donnée, sinon il y aura un bug un peu compliqué à expliquer :?
Merci d'avance

Re: Affichage smileys : Accents et parenthèse avec htmlentit

Posté : 01 juin 2014, 21:48
par Elie
Tu n'as qu'une seule image de smiley ?
Le fait de dire "Espace avant / Espace après" est trop hasardeux pour toi tu penses ?

Re: Affichage smileys : Accents et parenthèse avec htmlentit

Posté : 01 juin 2014, 22:09
par nico44530
Non, j'ai 80 smileys, je vais pas tous les mettre ^^
Le fait de mettre une espace avant et après ne change rien au bug :?

Re: Affichage smileys : Accents et parenthèse avec htmlentit

Posté : 02 juin 2014, 09:15
par Elie
Pourquoi tu stockes dans ta base de données en htmlentities ?
Et oui, ne remplacer que [ :) ] avec un espace avant et apres le smiley, cela pourrait être une autre solution.

Re: Affichage smileys : Accents et parenthèse avec htmlentit

Posté : 02 juin 2014, 16:05
par nico44530
C'est trop compliqué
Je stocke en htmlentities parce que sinon quand je post par exemple : "<a href="lien.php">Lien</a>"
Le lien va afficher "Lien" et être cliquable au lieu d'afficher "<a href="lien.php">Lien</a>"

J'ai pas compris sur les espaces avant et après le smiley ?

Re: Affichage smileys : Accents et parenthèse avec htmlentit

Posté : 02 juin 2014, 16:35
par Elie
http://www.php.net/manual/fr/function.h ... lchars.php

Ca n'encode pas les accents apparemment ?

Re: Affichage smileys : Accents et parenthèse avec htmlentit

Posté : 02 juin 2014, 17:36
par nico44530
Merci encore, ça fonctionne :)