Avatar billede spidr Nybegynder
31. oktober 2006 - 19:55 Der er 48 kommentarer og
1 løsning

Ignorere str_replace imellem " og "

Jeg bruger en masse str_replace til at sætte smileys ind på mit board, men hvordan kan jeg gøre sådan at tekst mellem " og " ikke bliver ændret af str_replace, sådan at jeg kan skrive koden til smileyen imellem der :)
Avatar billede masik7 Nybegynder
31. oktober 2006 - 20:03 #1
Måske:
preg_replace("/^"(:\))"$/", "<img src=\"\\0.jpg\" alt=\"\\0\">");

Ved ikke helt..
Avatar billede masik7 Nybegynder
31. oktober 2006 - 20:03 #2
/^"(:\))"+$/
Avatar billede zynzz Praktikant
31. oktober 2006 - 20:04 #3
sådan ?, hvis nej så lav lige et eksempel... :)

str_replace(':)','<img border="0" src="sti/billed.type">',$tekst);
Avatar billede zynzz Praktikant
31. oktober 2006 - 20:05 #4
minus " :P
Avatar billede masik7 Nybegynder
31. oktober 2006 - 20:12 #5
zynzz -> var det ikke meningen at det skulle være mellem " og "?
Avatar billede spidr Nybegynder
31. oktober 2006 - 20:12 #6
Den giver den her fejl:
Parse error: syntax error, unexpected '(' in /hsphere/local/home/winta/lovehina.dk/LHlaes.php on line 128


ved:

    $besked = str_replace(":closed:","<img src='grafik/454.gif' border=0>", $besked);

    $besked = preg_replace("/^"(:\))"+$/", "<img src=\"\\0.jpg\" alt=\"\\0\">", $besked);
Avatar billede masik7 Nybegynder
31. oktober 2006 - 20:14 #7
Sådan:

$besked = preg_replace("/^\"(:\))\"+$/", "<img src=\"\\0.jpg\" alt=\"\\0\">", $besked);
Avatar billede masik7 Nybegynder
31. oktober 2006 - 20:14 #8
Der skulle lige være et par \'er ;)
Avatar billede spidr Nybegynder
31. oktober 2006 - 20:16 #9
dem prøvede jeg faktisk selv at tilføje ;) men så skete der ingen ting ;)
Avatar billede spidr Nybegynder
31. oktober 2006 - 20:17 #10
$besked = $row[text];


$besked = preg_replace("/^\"(:\))\"+$/", "<img src=\"\\0.jpg\" alt=\"\\0\">", $besked);

    $besked = str_replace("
","newBRline", $besked);
    $besked = str_replace("  "," &nbsp;", nl2br(htmlentities(addslashes($besked))));

    $besked = str_replace("<","&lt;", $besked);
    $besked = str_replace(">","&gt;", $besked);
      $besked = str_replace("newBRline","
<br>", $besked);
    $besked = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",                    "<a href=\"\\0\" target=_blank>\\0</a>", $besked);


$isituser = mysql_query("SELECT * FROM LoveHinaUSERS WHERE RANK > '0'") or die(mysql_error());
while($rom = mysql_fetch_array($isituser)) {

    $besked = str_replace("$rom[Nickname]","<a href=profiles.php?for=$rom[id]>$rom[Nickname]</a>", $besked);

}


    $besked = str_replace("'","'", $besked);


    $besked = str_replace("'","'", $besked);
    $besked = str_replace("\\","", $besked);
    $besked = str_replace("","<i>", $besked);
    $besked = str_replace("
","</i>", $besked);
    $besked = str_replace("","<b>", $besked);
    $besked = str_replace("
","</b>", $besked);
    $besked = str_replace("","<u>", $besked);
    $besked = str_replace("
","</u>", $besked);

    $besked = str_replace(":)","<img src='grafik/icon_smile.gif' border=0>", $besked);
    $besked = str_replace(":(","<img src='grafik/icon_sad.gif' border=0>", $besked);
    $besked = str_replace(";)","<img src='grafik/icon_wink.gif' border=0>", $besked);
    $besked = str_replace(":O","<img src='grafik/icon_eek.gif' border=0>", $besked);
    $besked = str_replace(":D","<img src='grafik/icon_mrgreen.gif' border=0>", $besked);
    $besked = str_replace("8)","<img src='grafik/icon_cool.gif' border=0>", $besked);
    $besked = str_replace(":S","<img src='grafik/icon_confused.gif' border=0>", $besked);
    $besked = str_replace(":,(","<img src='grafik/icon_cry.gif' border=0>", $besked);
    $besked = str_replace(":!:","<img src='grafik/icon_exclaim.gif' border=0>", $besked);
    $besked = str_replace(":arrow:","<img src='grafik/icon_arrow.gif' border=0>", $besked);
    $besked = str_replace(":evil:","<img src='grafik/icon_evil.gif' border=0>", $besked);
    $besked = str_replace(":twisted:","<img src='grafik/icon_twisted.gif' border=0>", $besked);
    $besked = str_replace(":roll:","<img src='grafik/icon_rolleyes.gif' border=0>", $besked);
    $besked = str_replace(":spam:","<img src='grafik/462.gif' border=0>", $besked);
    $besked = str_replace(":$","<img src='grafik/985.gif' border=0>", $besked);
    $besked = str_replace(":love2:","<img src='grafik/6865.gif' border=0>", $besked);
    $besked = str_replace(":boy:","<img src='grafik/979.gif' border=0>", $besked);
    $besked = str_replace(":girl:","<img src='grafik/980.gif' border=0>", $besked);
    $besked = str_replace(":fuck:","<img src='grafik/whogives.gif' border=0>", $besked);
    $besked = str_replace(":thx:","<img src='grafik/thx.gif' border=0>", $besked);
    $besked = str_replace(":suck:","<img src='grafik/sucks.gif' border=0>", $besked);
    $besked = str_replace(":topic:","<img src='grafik/offtopic.gif' border=0>", $besked);
    $besked = str_replace(":life:","<img src='grafik/life.gif' border=0>", $besked);
    $besked = str_replace(":bad:","<img src='grafik/bad_idea.gif' border=0>", $besked);
    $besked = str_replace(":google:","<img src='grafik/google.gif' border=0>", $besked);
    $besked = str_replace(":think:","<img src='grafik/17541.gif' border=0>", $besked);
    $besked = str_replace(":joint1:","<img src='grafik/7579.gif' border=0>", $besked);
    $besked = str_replace(":joint2:","<img src='grafik/7578.gif' border=0>", $besked);
    $besked = str_replace(":joint3:","<img src='grafik/7567.gif' border=0>", $besked);
    $besked = str_replace(":wizard:","<img src='grafik/7555.gif' border=0>", $besked);
    $besked = str_replace(":cheer:","<img src='grafik/7500.gif' border=0>", $besked);
    $besked = str_replace(":ops:","<img src='grafik/7133.gif' border=0>", $besked);
    $besked = str_replace(":weird:","<img src='grafik/7095.gif' border=0>", $besked);
    $besked = str_replace(":bug:","<img src='grafik/7086.gif' border=0>", $besked);
    $besked = str_replace(":secret:","<img src='grafik/7003.gif' border=0>", $besked);
    $besked = str_replace(":comment:","<img src='grafik/6837.gif' border=0>", $besked);
    $besked = str_replace(":closed:","<img src='grafik/454.gif' border=0>", $besked);

    $besked = stripslashes($besked);
Avatar billede masik7 Nybegynder
31. oktober 2006 - 20:30 #11
Hvis du skriver ":)". Erstatter den så ikke det med med et <img src=":).jpg" alt=":)">  ??
Avatar billede spidr Nybegynder
31. oktober 2006 - 20:38 #12
ehm, men det har jeg jo ingen interesse i :S

Jeg er intresseret i at fjerne smiley'en, således at den viser koden for smileyen..

Sådan at når man skriver ":)" Så printer den :) ud, men når man bare skriver :) så printer den <img src='grafik/icon_smile.gif' border=0> ud.
Avatar billede masik7 Nybegynder
31. oktober 2006 - 21:28 #13
Okay, så havde jeg lige mistforstået det lidt.
Men ville det så ikke være nemmere at bytte om sådan ":)" blev til et billede og bare :) blev til :)? Det ville være nemmere at lave.
Avatar billede spidr Nybegynder
31. oktober 2006 - 21:38 #14
Det tror jeg mine brugere ville blive meget kede af ;)
hvis de skulehuske at bruge " hver gang de skulle lave en smiley ;)
Avatar billede gider_ikke_mere Nybegynder
31. oktober 2006 - 22:26 #15
Hvorfor laver du ikke bare en række af smileys under tekstfeltet man kan klikke på, og hvis brugeren selv ønsker at skrive en smiley, gøres det manuelt.
Avatar billede spidr Nybegynder
31. oktober 2006 - 22:58 #16
Det er der ikke rigtigt plads til på boardet :)

Men har indtil videre bare lavet en side hvor der står hvordan man laver dem. Men havde nu håbet på der var en nem måde at løse det her på :)
Avatar billede masik7 Nybegynder
01. november 2006 - 12:14 #17
$besked = str_replace("\":)\"","(:", $besked);
    $besked = str_replace(":)","<img src='grafik/icon_smile.gif' border=0>", $besked);
    $besked = str_replace(":(","<img src='grafik/icon_sad.gif' border=0>", $besked);
    $besked = str_replace(";)","<img src='grafik/icon_wink.gif' border=0>", $besked);
    $besked = str_replace(":O","<img src='grafik/icon_eek.gif' border=0>", $besked);
    $besked = str_replace(":D","<img src='grafik/icon_mrgreen.gif' border=0>", $besked);
    $besked = str_replace("8)","<img src='grafik/icon_cool.gif' border=0>", $besked);
    $besked = str_replace(":S","<img src='grafik/icon_confused.gif' border=0>", $besked);
    $besked = str_replace(":,(","<img src='grafik/icon_cry.gif' border=0>", $besked);
    $besked = str_replace(":!:","<img src='grafik/icon_exclaim.gif' border=0>", $besked);
    $besked = str_replace(":arrow:","<img src='grafik/icon_arrow.gif' border=0>", $besked);
    $besked = str_replace(":evil:","<img src='grafik/icon_evil.gif' border=0>", $besked);
    $besked = str_replace(":twisted:","<img src='grafik/icon_twisted.gif' border=0>", $besked);
    $besked = str_replace(":roll:","<img src='grafik/icon_rolleyes.gif' border=0>", $besked);
    $besked = str_replace(":spam:","<img src='grafik/462.gif' border=0>", $besked);
    $besked = str_replace(":$","<img src='grafik/985.gif' border=0>", $besked);
    $besked = str_replace(":love2:","<img src='grafik/6865.gif' border=0>", $besked);
    $besked = str_replace(":boy:","<img src='grafik/979.gif' border=0>", $besked);
    $besked = str_replace(":girl:","<img src='grafik/980.gif' border=0>", $besked);
    $besked = str_replace(":fuck:","<img src='grafik/whogives.gif' border=0>", $besked);
    $besked = str_replace(":thx:","<img src='grafik/thx.gif' border=0>", $besked);
    $besked = str_replace(":suck:","<img src='grafik/sucks.gif' border=0>", $besked);
    $besked = str_replace(":topic:","<img src='grafik/offtopic.gif' border=0>", $besked);
    $besked = str_replace(":life:","<img src='grafik/life.gif' border=0>", $besked);
    $besked = str_replace(":bad:","<img src='grafik/bad_idea.gif' border=0>", $besked);
    $besked = str_replace(":google:","<img src='grafik/google.gif' border=0>", $besked);
    $besked = str_replace(":think:","<img src='grafik/17541.gif' border=0>", $besked);
    $besked = str_replace(":joint1:","<img src='grafik/7579.gif' border=0>", $besked);
    $besked = str_replace(":joint2:","<img src='grafik/7578.gif' border=0>", $besked);
    $besked = str_replace(":joint3:","<img src='grafik/7567.gif' border=0>", $besked);
    $besked = str_replace(":wizard:","<img src='grafik/7555.gif' border=0>", $besked);
    $besked = str_replace(":cheer:","<img src='grafik/7500.gif' border=0>", $besked);
    $besked = str_replace(":ops:","<img src='grafik/7133.gif' border=0>", $besked);
    $besked = str_replace(":weird:","<img src='grafik/7095.gif' border=0>", $besked);
    $besked = str_replace(":bug:","<img src='grafik/7086.gif' border=0>", $besked);
    $besked = str_replace(":secret:","<img src='grafik/7003.gif' border=0>", $besked);
    $besked = str_replace(":comment:","<img src='grafik/6837.gif' border=0>", $besked);
    $besked = str_replace(":closed:","<img src='grafik/454.gif' border=0>", $besked);
    $besked = str_replace("(:",":)", $besked);

Sådan kan man, men det ikke den pæneste måde ;)
Avatar billede masik7 Nybegynder
01. november 2006 - 12:14 #18
Så hvis du skriver ":)" står :), tror jeg;)
Avatar billede spidr Nybegynder
01. november 2006 - 12:54 #19
haha jo, men så skal jeg jo lave det for hver enkel smiley, tænkte jeg godt selv på, bare med en talkode i stedet, men det bliver da noget være rod :S
Avatar billede masik7 Nybegynder
01. november 2006 - 12:55 #20
Ja det ved jeg, men jeg kan ikke komme andre idéer så.
Avatar billede masik7 Nybegynder
01. november 2006 - 12:58 #21
Nej, nu ved jeg det ;):

$besked = preg_replace("^[^\"]:)[^"]$", "<img src='grafik/icon_smile.gif' border=0>", "", $besked);

Så erstatter den :) med billledet, hvor der ikke er "'er om!:D
Så hvis er dem om, vil skriver den bare :)
Avatar billede masik7 Nybegynder
01. november 2006 - 12:59 #22
"/^[^\"]:)[^"]+$/"
sådan^^
Avatar billede masik7 Nybegynder
01. november 2006 - 12:59 #23
Prøver igen:

"/^[^\"]:)[^\"]+$/"

;)
Avatar billede spidr Nybegynder
02. november 2006 - 10:59 #24
Så har jeg endelig fået testet det, og den printer slet ingen smileys ud nu :S


    preg_replace("/^[^\"]:)[^\"]+$/","<img src='grafik/icon_smile.gif' border=0>", $besked);
Avatar billede spidr Nybegynder
02. november 2006 - 11:01 #25
preg_replace("/^[^\"]:)[^\"]+$/","<img src='grafik/icon_smile.gif' border=0>", "", $besked);

mener jeg selvfølgelig :D Resulterer stadig i at der ingen smileys er :S
Avatar billede masik7 Nybegynder
02. november 2006 - 20:23 #26
Okay

Prøv:
preg_replace("/^([^\"]+):)([^\"]+)+$/","<img src='grafik/icon_smile.gif' border=0>", "", $besked);
Avatar billede spidr Nybegynder
02. november 2006 - 20:42 #27
Thats the worst one to date ;) It removes the whole $besked haha D:
Avatar billede masik7 Nybegynder
02. november 2006 - 20:51 #28
$besked = preg_replace("/^([^\"]+):)([^\"]+)+$/", "<img src='grafik/icon_smile.gif' border=0>", $besked);

Mente jeg ;)
Avatar billede kinderaeg Nybegynder
03. november 2006 - 11:16 #29
Der er da vist ingen grund til at sætte ^ og $ ind som start og slut på strengen, det gør jo netop, at der kun bliver udskiftet, hvis det er det eneste der står.

Prøve med noget i den her retning:
preg_replace('/[^\"]:\)[^\"]/', "<img src='grafik/icon_smile.gif' border=0>", $besked)
Avatar billede spidr Nybegynder
03. november 2006 - 13:37 #30
hvorfor \ imellem : og )?

Den oversætter til ":)" til "(smiley billede)quot;
Avatar billede spidr Nybegynder
03. november 2006 - 13:38 #31
ah kan godt forstå \ nu, men den laver stadig fejl
Avatar billede spidr Nybegynder
03. november 2006 - 13:43 #32
$besked = preg_replace("/^([^\"]+):\)([^\"]+)+$/","<img src='grafik/icon_smile.gif' border=0>", $besked);

printer alt ud, undtagen beskeder der indeholder ":)", der printer den kun en glad smiley ud som hele beskeden og ikke andet :S
Avatar billede kinderaeg Nybegynder
03. november 2006 - 15:20 #33
Det virker upåklageligt, så vidt jeg kan se, med mindre jeg har misforstået noget.
Tjek evt mit eksempel på http://h-larsen.dk/test/

preg_replace('/([^\"])(:\))([^\"])/', "$1<img src='grafik/icon_smile.gif' border=0>$3", $besked)
Avatar billede masik7 Nybegynder
03. november 2006 - 17:04 #34
preg_replace("/([^\"]):)([^\"])/", "<img src='grafik/icon_smile.gif' border=0>", $besked);

Virker den ikke?
Avatar billede spidr Nybegynder
03. november 2006 - 17:29 #35
ah kindraeg, men der har du jo også tilføjet en $1 og $3 :)

så ser det jo ud til at virke :)

Masik, nej :(
Avatar billede masik7 Nybegynder
03. november 2006 - 17:35 #36
Jeg mener:

preg_replace("/([^\"]):\)([^\"])/", "<img src='grafik/icon_smile.gif' border=0>", $besked);
Avatar billede spidr Nybegynder
03. november 2006 - 17:35 #37
Det fatter jeg ikke kinderaeg, den oversætter både ":)" og :) til en smiley :S
Avatar billede spidr Nybegynder
03. november 2006 - 17:37 #38
Ah, den går selvfølgelig på tværts med nogle af de andre.

hvis jeg sætter den ind foran nedenståene, så virker det, men den printer jo bare koden til smileyen ud som tekst. skriver jeg den efter så virker det ikke :S


    $besked = str_replace("
","newBRline", $besked);
    $besked = str_replace("  "," &nbsp;", nl2br(htmlentities(addslashes($besked))));

    $besked = str_replace("<","&lt;", $besked);
    $besked = str_replace(">","&gt;", $besked);
      $besked = str_replace("newBRline","
<br>", $besked);
    $besked = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",                    "<a href=\"\\0\" target=_blank>\\0</a>", $besked);


$isituser = mysql_query("SELECT * FROM LoveHinaUSERS WHERE RANK > '0'") or die(mysql_error());
while($rom = mysql_fetch_array($isituser)) {

    $besked = str_replace("$rom[Nickname]","<a href=profiles.php?for=$rom[id]>$rom[Nickname]</a>", $besked);

}

    $besked = str_replace("\\","", $besked);
    $besked = str_replace("'","'", $besked);
    $besked = str_replace("'","'", $besked);
    $besked = str_replace("","<i>", $besked);
    $besked = str_replace("
","</i>", $besked);
    $besked = str_replace("","<b>", $besked);
    $besked = str_replace("
","</b>", $besked);
    $besked = str_replace("","<u>", $besked);
    $besked = str_replace("
","</u>", $besked);
    $besked = str_replace("[/u]","</u>", $besked);
Avatar billede spidr Nybegynder
03. november 2006 - 17:40 #39
og med


    $besked = stripslashes($besked);

til aller sidst :S
Avatar billede masik7 Nybegynder
03. november 2006 - 17:42 #40
Virker min sidste ikke?
Avatar billede kinderaeg Nybegynder
03. november 2006 - 21:55 #41
@ masik7
Din sidste fjerner det foranstående og efterfølgende tegn.

@ spidr
Det er lige med at sætte det ind det rigtige sted, inden $besked bliver ændret for meget, men efter du har ændret det du skal, for at der ikke kan komme eksekverbar kode med. Jeg vil tro du skal sætte det ind efter denne linie:
$besked = str_replace(">","&gt;", $besked);
Avatar billede masik7 Nybegynder
04. november 2006 - 16:06 #42
Mener du " og "?

De skal da fernes, skal de ikke?
Avatar billede kinderaeg Nybegynder
05. november 2006 - 16:22 #43
@ masik7
Nu er det jo ikke smiley'en med " omkring vi arbejder på, men den uden. Og det der sker er, at man, med dit sidste eksempel også fjerner de tegn der står rundt om :). Det vil sige, hvis du kører dit eksempel på en besked som på min testside, vil mellemrummet og kommaet forsvinde:

Forsøg hvor vi tester med både ":)" og :), for kun at skifte den ene ud

ville blive til

Forsøg hvor vi tester med både ":)" og<img src='grafik/icon_smile.gif' border=0> for kun at skifte den ene ud

i stedet for

Forsøg hvor vi tester med både ":)" og <img src='grafik/icon_smile.gif' border=0>, for kun at skifte den ene ud
Avatar billede masik7 Nybegynder
05. november 2006 - 16:39 #44
Okay

Så må det jo være noget i retning af(li'som du sagde):
preg_replace("/([^\"]):\)([^\"])/", "\\0<img src='grafik/icon_smile.gif' border=0>\\1", $besked);
Avatar billede kinderaeg Nybegynder
08. november 2006 - 16:25 #45
Er vi kommet tættere på en løsning eller får du stadig fejl?
Avatar billede masik7 Nybegynder
17. november 2006 - 20:52 #46
Ja.

Er der ikke noget af det, der virker?
Avatar billede gider_ikke_mere Nybegynder
22. november 2006 - 18:03 #47
Respons...
Avatar billede masik7 Nybegynder
03. december 2006 - 12:42 #48
Finder du ud af noget, spidr?
Avatar billede spidr Nybegynder
11. juli 2007 - 13:49 #49
Det er jeg virkelig ked af, på en eller anden måde fik jeg afskrevet mig tråden så jeg ikke fik avide på min mail at jeg fik svar :(

Men ja, fik det til at virke med jeres hjælp, mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester