webForumDet fria alternativet

Quote problem på forum

6 svar · 216 visningar · startad av Viktor

ViktorMedlem sedan aug. 20021 752 inlägg
#1

Hej

Jag har denna sats för att rensa bort alla quotes from en text i databasen

$this->quoted_post['post'] = preg_replace("^\[(QUOTE|quote)\](.*?)\[/(QUOTE|quote)\]^s", "", $this->quoted_post['post']);

Problemet är att om en post ser ut såhär

&#091quote]
Hej!
&#091/quote]
Hej på dig!
&#091quote]
Vad heter du?
&#091/quote]
Viktor

Så tas allt bort mellan första och sista quoteen, men jag vill bara tabort det som är mellan quoterna, dvs "Hej!" och "Vad heter du?" i detta exempel, då ska altså "Hej på dig!" och "Viktor" finnas kvar när man har kört texten genom parsern.
Vad göra? :)

/Viktor

RiC]-[iEMedlem sedan apr. 200354 inlägg
#2
$this->quoted_post['post'] = preg_replace("#\[(QUOTE|quote)\][^\\[]*\[/(QUOTE|quote)\]#s", "", $this->quoted_post['post']);
ViktorMedlem sedan aug. 20021 752 inlägg
#3

Nja, det är nog ett steg i rätt riktning men resultatet blev inte som jag ville :)

[j!
[/j på dig!
[?
[/r

/Viktor

dectgapMedlem sedan sep. 20021 655 inlägg
#4
<?php

$str = "[quote]Lite text att citera och en radbrytning \n[/quote] Text som inte är citerad [quote]blä[/quote]";

$str = preg_replace("/\[quote\](.*?)\[\/quote\]/is", "", $str);

echo $str;

?>
stevenetMedlem sedan juni 20001 251 inlägg
#5

Re: Quote problem på forum

Viktor skrev:

$this->quoted_post['post'] = preg_replace("^\[(QUOTE|quote)\](.*?)\[/(QUOTE|quote)\]^s", "", $this->quoted_post['post']);

Förstår inte riktigt vad du är ute efter... Koden ovan returnerar väl önskad sträng?

ViktorMedlem sedan aug. 20021 752 inlägg
#6

Re: Re: Quote problem på forum

stevenet skrev:

Förstår inte riktigt vad du är ute efter... Koden ovan returnerar väl önskad sträng?

:r du har så rätt, det var ett dåligt exempel (provade det inte först), men detta klarar varken min eller någon annan av de 2 koder här av :(

--------------------------

Viktor,Apr 14 2003, 06:09 PM skrev:

Viktor,Apr 14 2003, 06:08 PM skrev:

Viktor,Apr 14 2003, 06:08 PM skrev:

Viktor,Apr 14 2003, 06:08 PM skrev:

fflkdjs
fdsjlflsd
fjdlskfjlksd
jfldjfksd

/Viktor

fdsljfdsjlfksd
fdlkflsfdljfldsk
fjldksfldsflks
fjlkdsflsdlkfdskj

fhdslfjdlkjldsjfkl
fdskfjksfkldkljsfdj
fjlkdsjfldfljdslfjls
fjkldfsldfllkds
jfldskflsdjflkdflks

tjdskfjdskfj
fjdslkjfldksjlf'
fdsfjdsfjldsjfld
fdslkfdsjfldjlfs
jflkdjfslkdjl
fjlkdsjfldsjfl

jdslkjfldsflkjds

sjfldksjflds
fdslfdsjflkdsj
jdslkfjksjdlk

:lol:

/Viktor

---------------------

Om jag kör en quote på det så försvinner inte någon quote :(
Målet är altså att bara ":lol: /Viktor" ska finnas kvar när man quotar.

/Viktor

dectgapMedlem sedan sep. 20021 655 inlägg
#7

Ursäkta, men mitt förslag blev lite förstört av formateringen på forumet.

$str = preg_replace("/\[quote\](.*?)\[\/quote\]/is", "", $str);

echo $str;

Det funkar hur bra som helst för mig.
Det plockar bort [ quote]-taggar och deras innehåll, och låter resten stå kvar - det var väl det du ville åstadkomma?

EDIT:
Nu märkte jag dock att det blir problem med nästlade quote-taggar.

137 ms totalt · 3 externa anrop · v20260731065814-full.91fd2ad2
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)