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 :)
Annonceindlæg fra Computerworld
31. oktober 2006 - 20:03
#1
Måske: preg_replace("/^"(:\))"$/", "<img src=\"\\0.jpg\" alt=\"\\0\">"); Ved ikke helt..
31. oktober 2006 - 20:03
#2
/^"(:\))"+$/
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);
31. oktober 2006 - 20:05
#4
minus " :P
31. oktober 2006 - 20:12
#5
zynzz -> var det ikke meningen at det skulle være mellem " og "?
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);
31. oktober 2006 - 20:14
#7
Sådan: $besked = preg_replace("/^\"(:\))\"+$/", "<img src=\"\\0.jpg\" alt=\"\\0\">", $besked);
31. oktober 2006 - 20:14
#8
Der skulle lige være et par \'er ;)
31. oktober 2006 - 20:16
#9
dem prøvede jeg faktisk selv at tilføje ;) men så skete der ingen ting ;)
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(" "," ", nl2br(htmlentities(addslashes($besked)))); $besked = str_replace("<","<", $besked); $besked = str_replace(">",">", $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);
31. oktober 2006 - 20:30
#11
Hvis du skriver ":)". Erstatter den så ikke det med med et <img src=":).jpg" alt=":)"> ??
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.
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.
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 ;)
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.
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å :)
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 ;)
01. november 2006 - 12:14
#18
Så hvis du skriver ":)" står :), tror jeg;)
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
01. november 2006 - 12:55
#20
Ja det ved jeg, men jeg kan ikke komme andre idéer så.
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 :)
01. november 2006 - 12:59
#22
"/^[^\"]:)[^"]+$/" sådan^^
01. november 2006 - 12:59
#23
Prøver igen: "/^[^\"]:)[^\"]+$/" ;)
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);
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
02. november 2006 - 20:23
#26
Okay Prøv: preg_replace("/^([^\"]+):)([^\"]+)+$/","<img src='grafik/icon_smile.gif' border=0>", "", $besked);
02. november 2006 - 20:42
#27
Thats the worst one to date ;) It removes the whole $besked haha D:
02. november 2006 - 20:51
#28
$besked = preg_replace("/^([^\"]+):)([^\"]+)+$/", "<img src='grafik/icon_smile.gif' border=0>", $besked); Mente jeg ;)
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)
03. november 2006 - 13:37
#30
hvorfor \ imellem : og )? Den oversætter til ":)" til "(smiley billede)quot;
03. november 2006 - 13:38
#31
ah kan godt forstå \ nu, men den laver stadig fejl
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
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)
03. november 2006 - 17:04
#34
preg_replace("/([^\"]):)([^\"])/", "<img src='grafik/icon_smile.gif' border=0>", $besked); Virker den ikke?
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 :(
03. november 2006 - 17:35
#36
Jeg mener: preg_replace("/([^\"]):\)([^\"])/", "<img src='grafik/icon_smile.gif' border=0>", $besked);
03. november 2006 - 17:35
#37
Det fatter jeg ikke kinderaeg, den oversætter både ":)" og :) til en smiley :S
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(" "," ", nl2br(htmlentities(addslashes($besked)))); $besked = str_replace("<","<", $besked); $besked = str_replace(">",">", $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);
03. november 2006 - 17:40
#39
og med $besked = stripslashes($besked); til aller sidst :S
03. november 2006 - 17:42
#40
Virker min sidste ikke?
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(">",">", $besked);
04. november 2006 - 16:06
#42
Mener du " og "? De skal da fernes, skal de ikke?
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
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);
08. november 2006 - 16:25
#45
Er vi kommet tættere på en løsning eller får du stadig fejl?
17. november 2006 - 20:52
#46
Ja. Er der ikke noget af det, der virker?
22. november 2006 - 18:03
#47
Respons...
03. december 2006 - 12:42
#48
Finder du ud af noget, spidr?
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 :)
Vi tilbyder markedets bedste kurser inden for webudvikling