Regex et smilies... - PHP - Programmation
Marsh Posté le 30-08-2002 à 09:53:33
myisamchk -a MYI a écrit a écrit : Hello. Je me sers de ce bout de code pour parser les smilies dans une chaîne de caractères :
|
, je vais pas répondre directement à ta question mais bon, moi j'utilise cette fonction pour les smiley et pas de pb :
|
@+
Marsh Posté le 30-08-2002 à 11:56:40
il te suffit de les trier en ordre descendant (DESC) et non ASC par défaut ;)
ainsi :ouch: sera remplacé avant :o s'il est présent
Marsh Posté le 30-08-2002 à 12:47:39
Kayasax > je vais essayer, merci
Ethernal > le problème, c'est que c'est déjà trié comme ça La fonction remplace tous les %ouch% de la chaîne de caractères, et ensuite elle refait un passage pour le %o. Et vu que la l'attribut alt de la balise img contient la chaîne %ouch%, je te laisses imaginer le problème
Marsh Posté le 30-08-2002 à 13:06:34
kayasax a écrit a écrit : , je vais pas répondre directement à ta question mais bon, moi j'utilise cette fonction pour les smiley et pas de pb :
|
kayasal, ca a l'air super ta fonction.
Je vais me baser dessus pour les smilies et les mise en forme de caratère de mon site mais ca sera un peu plus complexe au niveau de la requête vu que je vais faire des groupes de codes diférents afin que certains soient utilisé que dans les news, d'autres au niveau des news, du forum et du chat, ...
MErci, pour ce bout de code que j'arrive à comprendre sans problème.
Marsh Posté le 30-08-2002 à 15:45:35
myisamchk -a MYI a écrit a écrit : Ethernal > le problème, c'est que c'est déjà trié comme ça La fonction remplace tous les %ouch% de la chaîne de caractères, et ensuite elle refait un passage pour le %o. Et vu que la l'attribut alt de la balise img contient la chaîne %ouch%, je te laisses imaginer le problème |
exact j'avais le même, j'ai supprimé le alt
Marsh Posté le 30-08-2002 à 15:47:39
omega2 a écrit a écrit : kayasal, ca a l'air super ta fonction. Je vais me baser dessus pour les smilies et les mise en forme de caratère de mon site mais ca sera un peu plus complexe au niveau de la requête vu que je vais faire des groupes de codes diférents afin que certains soient utilisé que dans les news, d'autres au niveau des news, du forum et du chat, ... |
évite...
le mieux c'est str_replace.
si tu veux limiter le nombre de smileys remplacer pour ne pas surcharger une page, utilise preg_replace.
Mais en aucun cas eregi_replace, c'est le plus lent et ça n'apporte rien de plus.
enfin, moi je dis ça, je dis rien, chacun fait ce qu'il veut
Marsh Posté le 30-08-2002 à 16:18:30
ethernal a écrit a écrit : évite... le mieux c'est str_replace. si tu veux limiter le nombre de smileys remplacer pour ne pas surcharger une page, utilise preg_replace. Mais en aucun cas eregi_replace, c'est le plus lent et ça n'apporte rien de plus. enfin, moi je dis ça, je dis rien, chacun fait ce qu'il veut |
Un doute m'envahis tout à coup.
Moi, j'ai mon site en php3 et d'après la doc de nexen, str_replace ne peut prendre des tableaux comme paramêtre qu'à partir de php4.
Avec eregi_replace et preg_replace, c'est les même limitations ou pas?
EDIT : Pour preg_replace j'ai trouvé l'info, il accepte des paramêtres sous formes de tableaux. Pour eregi_replace, je n'ai aps encore trouvé d'info sur ce problème.
Marsh Posté le 30-08-2002 à 18:19:24
str_replace ne prends pas de tableau (même sur ma version 4.2.2)
mais c pas grave, tu fais une boucle, c'est la même chose.
eregi_replace pas d'info stipulant qu'il accepte des tableau, donc il n'en accepte pas.
Marsh Posté le 30-08-2002 à 19:03:05
ethernal a écrit a écrit : str_replace ne prends pas de tableau (même sur ma version 4.2.2)mais c pas grave, tu fais une boucle, c'est la même chose. eregi_replace pas d'info stipulant qu'il accepte des tableau, donc il n'en accepte pas. |
Hein ?
Mon code de formatage des smilies fonctionne parfaitement avec un seul str_replace et deux arrays?
Citation : In PHP 4.0.5 and later, every parameter to str_replace() can be an array. |
Marsh Posté le 31-08-2002 à 01:31:57
Freekill a écrit a écrit : Hein ? Mon code de formatage des smilies fonctionne parfaitement avec un seul str_replace et deux arrays? |
j'ai du mal tester alors... ou faire une erreur qq part, mea culpa
Marsh Posté le 30-08-2002 à 04:20:30
Hello.
Je me sers de ce bout de code pour parser les smilies dans une chaîne de caractères :
On va dire que ce code cherche d'abord le smilie %ouch%, et ensuite le smilie %o (ils sont dans cette ordre quand je vais les chercher dans la BDD) (je remplace les : par des %)
Le problème c'est que par exemple, si j'ai un smiley %ouch% dans la chaîne de caractère, il va me sortir ça au final :
uch:">
Est-ce que quelqu'un aurait une petite idée pour contourner le problème ? Merci