PHP: Spränga sträng efter <?php ?>

Permalänk
Medlem

PHP: Spränga sträng efter <?php ?>

Hej!

Jag har en långt sträng som kombinerar text som ska formateras med BBCode och PHP-kod innesluten med <?php ?>. Jag vill att alltså att BBCode ska appliceras endast på det som inte är PHP-kod.

Hade en tanke att dela upp strängen i en array och bara köra BBCode-genereringen på de delar i arrayen som är vanlig text.

Hur gör jag det? Finns det något bättre sätt?

Visa signatur

Rasmus Lindell
Webmaster

Permalänk
Medlem

strip_tags() plockar borta alla html- och php-taggar från en sträng:
http://php.net/manual/en/function.strip-tags.php

Kanske kan det vara en början?

Permalänk
Medlem

Du kan ju matcha ut <?php ?> delen med preg_match oxå.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Perg
strip_tags() plockar borta alla html- och php-taggar från en sträng:
http://php.net/manual/en/function.strip-tags.php

Kanske kan det vara en början?

Jo, men hur ska jag få tillbaka taggarna på rätt ställen då?
Problemet jag har är att jag vill låta php-koden vara orörd, medan annan text formateras med BBCode-taggar!

Visa signatur

Rasmus Lindell
Webmaster

Permalänk
Medlem

Aja, löste det på följande sätt. Får väl anses vara ett ganska ok sätt?

function treatphp($input) { $result = ""; $left = explode("<?",$input); foreach($left as $leftStr) { $right = explode("?>",$leftStr); foreach($right as $rightStr) { if(substr($rightStr,0,3)=="php") $result .= "<?".$rightStr."?>"; else $result .= bbcode($rightStr); } } return $result; }

Visa signatur

Rasmus Lindell
Webmaster