Ik heb een script wat smiley-codes vervangt door een plaatje. Werkt allemaal perfect middels een str_replace . Alleen nu is het probleem dat ik bepaalde codes heb die hetzelfde beginnen, zoals een : p en een : puke : (zonder spaties)
Die : puke : wordt dus omgezet naar
uke:.
Oplossing hiervoor heb ik inmiddels gevonden: Regex, die moet dus controleren of er een spatie voor en na staat of dat de smiley aan het begin/eind van een regel staat.
Ik ben tot het volgende gekomen, maar regex is een redelijk grijs gebied voor me, dus een duwtje in de goede richting zou welkom zijn
maar hij komt niet in die if statement dus er is iets fout met m'n conditie..
voor zover ik het snap staat er:
als een string bestaat uit: begint met tab, new line, verticale tab, form feed, carriage return of spatie, vervolgens een : ; ( of een -, vervolgens een of meerdere punct-tekens of letters of cijfers of _, vervolgens geen of 1 : of ), eindigt met een tab, new line, verticale tab, form feed, carriage return of spatie.
uitleg: hij moet beginnen met een spatie, new line etc dat is duidelijk, vervolgens moet hij beginnen met : ; ( of - aangezien ik smileys heb als
(k) en -_-
dan letters/cijfers voor iets als :puke: of
, punct teken voor
en underscore voor -_-
afsluiten met geen of 1 dubbele punt (bv voor
geen afsluit teken en voor :puke: een dubbele punt) of haakje (voor (k) ) en eindigen met tab/new line etc etc
wat doe ik fout??
Die : puke : wordt dus omgezet naar
Oplossing hiervoor heb ik inmiddels gevonden: Regex, die moet dus controleren of er een spatie voor en na staat of dat de smiley aan het begin/eind van een regel staat.
Ik ben tot het volgende gekomen, maar regex is een redelijk grijs gebied voor me, dus een duwtje in de goede richting zou welkom zijn
code:
1
2
3
4
| if (eregi("^[:space:][:;(-][[:punct:]a-z0-9_]+[:)]?[:space:]$", $str) ) { ' doe tekst vervangen voor smiley } |
maar hij komt niet in die if statement dus er is iets fout met m'n conditie..
voor zover ik het snap staat er:
als een string bestaat uit: begint met tab, new line, verticale tab, form feed, carriage return of spatie, vervolgens een : ; ( of een -, vervolgens een of meerdere punct-tekens of letters of cijfers of _, vervolgens geen of 1 : of ), eindigt met een tab, new line, verticale tab, form feed, carriage return of spatie.
uitleg: hij moet beginnen met een spatie, new line etc dat is duidelijk, vervolgens moet hij beginnen met : ; ( of - aangezien ik smileys heb als
dan letters/cijfers voor iets als :puke: of
afsluiten met geen of 1 dubbele punt (bv voor
wat doe ik fout??