Avatar billede majbom Novice
01. august 2004 - 16:39 Der er 28 kommentarer og
1 løsning

at lave "tags" i et forum

hej eksperten..

jeg sidder og leger med et forum, og vil gerne have lavet, sådan at man kan citere andre kommentare i forummet.
jeg har lavet det meste, mangler blot at få den til at lave mit tag om til tekst...
f.eks. når man vil "quote" én, vil der i textarea'et (hvor man skriver sit indlæg) stå: "[quote="splazz"]splazz's kommentar[/quote]" ligesom i phpbb-forummet, når jeg så smider denne kommentar ind i min db, skal den laves om til noget andet, så der kommer til at stå: "splazz skrev: splazz's kommentar"

håber det giver mening, på forhånd tak for hjælpen

//splazz
Avatar billede sim00n Praktikant
01. august 2004 - 16:46 #1
Har ikke lige tid til at rode med det men man kan nok godt finde den kode i phpBB scriptet.. :D
Avatar billede detox Nybegynder
01. august 2004 - 16:47 #2
Måske:

$str = preg_replace("/\[quote=(.*)\](.*)\[\/quote\]/","$1 skrev: $2" , $str);
Avatar billede detox Nybegynder
01. august 2004 - 16:49 #3
Kan jo evt formateres:

$str = preg_replace("/\[quote=(.*)\](.*)\[\/quote\]/","<p><i>$1 skrev: $2</i></p>" , $str);
Avatar billede majbom Novice
01. august 2004 - 16:50 #4
tager den hvad der står ved (.*) og laver om til $1 og den næste (.*) til $2 osv?

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 16:51 #5
Korrekt
Avatar billede majbom Novice
01. august 2004 - 17:27 #6
sejt... det prøver jeg sq! :)

-> sim00n - har kigget meget i phpbb-koden, men kunne ikke rigtig finde noget

//splazz
Avatar billede majbom Novice
01. august 2004 - 17:45 #7
-> detox - jeg kan sq ikke få det til at virke...

$svar = preg_replace("/\[quote=\"(.*)\"\](.*)\]\/quote\]/","<p><i>$1 skrev: $2</i></p>", $svar);

ser det ellers ikke rigtigt ud? der sker ikke noget ved det der står imellem quote-taggene

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 17:53 #8
Næ, du har vendt en: [ til en: ]:

$svar = preg_replace("/\[quote=\"(.*)\"\](.*)\[\/quote\]/","<p><i>$1 skrev: $2</i></p>", $svar);
Avatar billede majbom Novice
01. august 2004 - 18:34 #9
hehe.. det er sq da rigtigt... takker for det :)

//splazz
Avatar billede majbom Novice
01. august 2004 - 18:46 #10
hmm, det virker stadig ikke... jeg har prøvet med den du har skrevet og dersker stadig ikke noget...

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 18:53 #11
Så er det nok $svar der ikke har det rette format. Den skal jo være korrekt. Altså:

[quote="splazz"]splazz's kommentar[/quote]
Avatar billede detox Nybegynder
01. august 2004 - 18:59 #12
I øvrigt skal der et: 'U' på, hvis der er flere qoutes:

preg_replace("/\[quote=\"(.*)\"\](.*)\[\/quote\]/U",....
Avatar billede majbom Novice
01. august 2004 - 19:15 #13
hmm... jeg prøvede lige at skrive den selv og så virkede det fint, er der tegn der ikke må stå i teksten?
Avatar billede detox Nybegynder
01. august 2004 - 19:21 #14
Nej, det tror jeg umiddelbart ikke der er.
Avatar billede majbom Novice
01. august 2004 - 20:00 #15
ok, jeg har fundet ud af at hvis man laver et enter, så virker det ikke... hvad kan man gøre ved det?

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 20:02 #16
Prøv at tilføje et 's' her:

preg_replace("/\[quote=\"(.*)\"\](.*)\[\/quote\]/Us",....
Avatar billede majbom Novice
01. august 2004 - 20:09 #17
så virker det sq... forstod ikke helt det med det store 'U', er det hvis der er en quote i det du 'quoter'?

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 20:13 #18
'U' og 's' er såkaldte modifiers, der ændrer måden hvorpå regexp fortolkes. Du kan læse mere her:
http://dk2.php.net/manual/en/pcre.pattern.modifiers.php
Avatar billede majbom Novice
01. august 2004 - 20:14 #19
det virker næsten rettere sagt, for nu skriver den bare det hele ud i en køre... :(

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 20:22 #20
Mener du at det ændrede sig, da du indsatte en 's' modifier?
Avatar billede majbom Novice
01. august 2004 - 20:25 #21
det kan man godt sige... før jeg satte 's' ind virkede den ikke, når der var linjeskift i teksten, det virker nu, med den tager ikke linjeskiftene med...

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 20:28 #22
Arh, ok. Prøv:

echo nl2br($svar);
Avatar billede majbom Novice
01. august 2004 - 20:34 #23
hmm... skal jeg det før eller efter preg_replace?
Avatar billede detox Nybegynder
01. august 2004 - 20:35 #24
Efter
Avatar billede detox Nybegynder
01. august 2004 - 20:37 #25
Eller hvis du bruger $svar til noget andet så:

$svar = nl2br($svar);
Avatar billede majbom Novice
01. august 2004 - 20:42 #26
så kommer der jo til at stå </br> hver gang man henter den frem i et textarea, det ser ikke så pænt ud...
Avatar billede detox Nybegynder
01. august 2004 - 20:45 #27
Nej, det er klart. Men du kan jo så nøjes med at bruge nl2br() ved udskrivningen.
Avatar billede majbom Novice
01. august 2004 - 20:49 #28
hmm... ja det er self rigtigt... det gør jeg så... tak for hjælpen!

//splazz
Avatar billede detox Nybegynder
01. august 2004 - 20:50 #29
Velbekommen
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