[RESOLU] Affichage smileys : Accents et parenthèse avec htmlentities

Eléphant du PHP | 386 Messages

01 juin 2014, 21:33

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

Mammouth du PHP | 1339 Messages

01 juin 2014, 21:48

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 ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 386 Messages

01 juin 2014, 22:09

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 :?

Mammouth du PHP | 1339 Messages

02 juin 2014, 09:15

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.
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 386 Messages

02 juin 2014, 16:05

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 ?

Mammouth du PHP | 1339 Messages

02 juin 2014, 16:35

http://www.php.net/manual/fr/function.h ... lchars.php

Ca n'encode pas les accents apparemment ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 386 Messages

02 juin 2014, 17:36

Merci encore, ça fonctionne :)