Toon posts:

Regular expression en smiley's uit MySQl met PHP

Pagina: 1
Acties:

Verwijderd

Topicstarter
Duidelijke titel (hoop ik)

De bedoeling is dat de smiley's die ik op mijn forum wil gaan gebruiken dmv regular expressions(wat anders) omgezet worden in een link naar de desbetreffende smiley

(tot zover snap ik het ook nog)
het probleem wat ik tegenkom is dat als ik : ) intyp hij er een :) van maakt en als ik } : ) dan maakt ie er } :) van. Dat wil ik niet. Hij moet er een }) van maken (is hier een andere code) Ik wil dat hij de juiste code pakt.

Heeft iemand een ideetje om dat aan te pakken

alvast bedankt

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 10:19

D2k

volgorde :)

Doet iets met Cloud (MS/IBM)


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Dat heeft natuurlijk met de parse volgorde te maken.
Aangezien hij eerst de : ) parsed.
De enige oplossing die ik kan bedenken is om een andere code te bedenken te gebruiken voor de devil smily

It’s nice to be important but it’s more important to be nice


Verwijderd

Topicstarter
JonkieXL schreef op 18 oktober 2002 @ 10:55:
Dat heeft natuurlijk met de parse volgorde te maken.
Aangezien hij eerst de : ) parsed.
De enige oplossing die ik kan bedenken is om een andere code te bedenken te gebruiken voor de devil smily
Dat wil ik niet :'(
Ik heb net 80 smilies zitten inkloppen in me database en nu moet ik ze weer allemaal gaan nalopen of de codes niet overeenkomen

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Dan zou je de : ) code alleen moeten parsen als er geen } voor staat. Valt vast wel te doen met regular expressions

edit:
Je kan natuurlijk ook gewoon de }:) smily eerder parsen dan de :) smily.

[ Voor 0% gewijzigd door pjonk op 18-10-2002 11:03 . Reden: dom ]

It’s nice to be important but it’s more important to be nice


  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 27-08 11:17

Defspace

Administrator

Waarom via regular expressions ??
Je kan voor smilies toch gewoon een Replace gebruiken ??

Verwijderd

Topicstarter
JonkieXL schreef op 18 oktober 2002 @ 10:59:
Dan zou je de : ) code alleen moeten parsen als er geen } voor staat. Valt vast wel te doen met regular expressions

edit:
Je kan natuurlijk ook gewoon de }:) smily eerder parsen dan de :) smily.
maar hoe ???? Reg expressions gewoon gaat wel maar niet op specifiek een bepaalde code. en eerder parsen wil ik graag proberen te voorkomen

Verwijderd

Ik heb zoiets ook gemaakt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function parseSmileys() {
        $smileyTags     = array("/( \:\))/",
                                "/( \:D)/",
                                "/( \;\))/",
                                "/( \:P)/",
                                "/( \:o)/",
                                "/( \:-\\\)/",
                                "/( \:-X)/",
                                "/( \:\()/",
                                "/( >\:\))/");
        $smileyReplace  = array(" [img]\"$this->smileyLocation/smiley.gif\"[/img]",
                                " [img]\"$this->smiley_loc/cheesy.gif\"[/img]",
                                " [img]\"$this->smiley_loc/wink.gif\"[/img]",
                                " [img]\"$this->smiley_loc/tongue.gif\"[/img]",
                                " [img]\"$this->smiley_loc/shocked.gif\"[/img]",
                                " [img]\"$this->smiley_loc/undecided.gif\"[/img]",
                                " [img]\"$this->smiley_loc/lipssealed.gif\"[/img]",
                                " [img]\"$this->smiley_loc/sad.gif\"[/img]",
                                " [img]\"$this->smiley_loc/angry.gif\"[/img]");
        $this->data = preg_replace($smileyTags, $smileyReplace, $this->data);
    }
Wordt gebruikt in een class, dus je moet een paar dingen aanpassen

Verwijderd

je moet de } ook ff escapen
da's namelijk een karakter die in de regex een functie heeft
Pagina: 1