QonosMedlem sedan sep. 2000438 inlägg function textFormat($text,$page = "presentation",$admin = 0)
{
$pattern = array (
"/\[quote](.*?)\[\/quote]/is",
"/\[quote=(.*?)](.*?)\[\/quote]/is",
);
$replace = array
(
"<div class=\"h5\"><i>".$GLOBALS["strQuote"]."</i>:<br><hr>$1<hr><br></div>",
"<div class=\"h5\"><i>$1 ".$GLOBALS["strWrote"]."</i>:<br><hr>$2<hr><br></div>",
);
$text = preg_replace($pattern, $replace, $text);
$text = nl2br(stripslashes($text));
return $text;
}
denna funktionen fungerar bra om man skriver
[quote]hej[/quote]
men om någon citerar ett inlägg som innehåller ett citat typ:
[quote][quote]hej[/quote]ojoj[/quote]
så använder den den första
och den första
och följden blir då att de två andra ignoreras.
finns det nått sätt att komma förbi detta?
QonosMedlem sedan sep. 2000438 inlägg Oj det såg ju inte riktigt rätt ut, bifogar inlägget ovan som txt-fil, så ni ser vad jag egentligen skrev :)
QonosMedlem sedan sep. 2000438 inlägg hmm kanske inte är regexp som det gäller, eller?
kanske är det så att man på något sätt måste läsa strängen från båda hållen och matcha hop taggarna på det sättet, eller?
EitrazMedlem sedan sep. 2002366 inlägg Jag brukar köra en "fuling" och skilja på [ quote] och [ /quote] så att de inte ligger i samma regexp (alt relpace) så slipper man det där problemet ;)
Finns väll säkert nåt annat lurigt sett man kan göra nestat med, men jag kan ingen för tillfället ;)
QonosMedlem sedan sep. 2000438 inlägg jo det skulle ju fungera, men om de har t.ex. 3st [ quote] och 2st [ /quote].
kommer inte det att kunna fucka up hela layouten på resten av sidan?
MatteMedlem sedan aug. 20002 975 inlägg Du skulle kunna göra en funktion som kollar dina quote utifrån in:
function replace_quote($by, $text) {
$text = preg_replace("/\\[quote(=([^\\]]*))*](.*)\\[\\/quote]/ise", "replace_quote('$2', '$3')", $text);
return "\n<div class=\"h5\"><i>$by ".$GLOBALS['strWrote']."</i>:<br><hr>$text<hr><br></div>\n";
}
$text = preg_replace("/\\[quote(=([^\\]]*))*](.*)\\[\\/quote]/ise", "replace_quote('$2', '$3')", $text);
Men då faller detta på att det inte skulle fungera om du hade t.ex.:
[quote]hopp[/quote]hej[quote]ojoj[/quote]
Kanske det då skulle kunna gå att göra ett avancerat uttryck som fixar också det,
men jag tror det bästa isåfall är att göra som Eitraz föreslog, för att sedan räkna
<div> och </div> i din text och utifrån detta antingen lägga till ett antal <div> i
början eller </div> i slutet.