webForumDet fria alternativet

Stänga öppna taggar

PHP

5 svar · 409 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hallojsan folket!

Behöver lite tips på hur jag ska lösa en grej. Eller hur ni skulle gå tillväga för att lösa det.
Har märkt att ibland så blir det fel när folk postar inlägg i en gästbok eller forum, då de glömmer att avsluta taggar.
Detta resulterar i att den taggen de glömmer avsluta sträcker sig över _alla_ inlägg.
Exempel kan vara att "Per" skriver ett gästboksinlägg och glömmer att avsluta <b>-taggen, då blir alltså alla gästboksinlägg fetstilta.

Hur skulle ni lösa det för att komma förbi detta?

Medlem sedan dec. 19996 721 inlägg
#2

Antar/hoppas att du har någon form av wf-liknande kod där användarna inte kan skriva in HTML direkt, utan använder speciella taggar med hakparenteser. I så fall så bör du bygga ersättningen (som byter taggarna till riktiga HTML-taggar) på ersättning av kompletta tagg-par, eftersom öppna taggar då kommer att ligga kvar i sin "kod-form". Detta gör du lämpligen med reguljära uttryck.

Medlem sedan juli 20033 147 inlägg
#3

emission skrev:

Antar/hoppas att du har någon form av wf-liknande kod där användarna inte kan skriva in HTML direkt, utan använder speciella taggar med hakparenteser. I så fall så bör du bygga ersättningen (som byter taggarna till riktiga HTML-taggar) på ersättning av kompletta tagg-par, eftersom öppna taggar då kommer att ligga kvar i sin "kod-form". Detta gör du lämpligen med reguljära uttryck.

Ja, det låter ju faktiskt ganska logiskt. :)
Har haft sömnproblem hela veckan så är lite halvdassig där uppe.
Återkommer om jag behöver mer hjälp.

Tack för tipset.

Medlem sedan juli 20033 147 inlägg
#4

Det funkade hur bra som helst. :)
Hade inte riktigt tänkt i de banorna, så jag hade löst det med en vanlig str_replace.

Medlem sedan juli 20033 147 inlägg
#5

Har stirrat mig blind på en grej i timtal nu, varför funkar inte detta?

preg_replace("/\[citat=([^\]]+)\](.*?)\[/citat\]'is", "\n<span style=\"margin-left: 15px; display: block;\"><b>$1 skrev:</b>\n$2\n</span>", $string)

Jag får

Warning: preg_replace() [function.preg-replace.html]: Unknown modifier 'c' in

/red
Ibland blir man lite för ivrig för att få hjälp.

preg_replace("'\[citat=([^\]]+)\](.*?)\[/citat\]'is", "\n<span style=\"margin-left: 15px; display: block;\"><b>$1 skrev:</b>\n$2</span>", $string)

Detta funkar.

Medlem sedan dec. 20025 483 inlägg
#6

Till vänster avgränsar du uttrycket med "/", medan du till höger valt "'".

:)

Red./ Långsam...

251 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)