Autor | Zpráva | ||
---|---|---|---|
Someone Profil |
#1 · Zasláno: 28. 4. 2012, 18:55:02
Dobrý den, do teď jsem pro zvýrazňování syntaxe v PHP používal přímo PHP funkci highlight_String(). Nyní jsem se rohodl ukládat texty do DB, což znamená, že funkci highlight_String() nemůžu používat přímo v textu. Tak jsem se pokusil sestavit něco s BBCode... nejdříve jsem zkoušel funkci preg_match, ta ovšem nepodporuje aby text, který má nahradi text původní byl vygenerován funkcí. Tak jsem se dostal až k funkci preg_match_callback()... A sestavil jsem toto:
<?php function zvyraznit($co) { $text = highlight_String("<?php\n".$co[2]."?>"); return $text; } $text = "<p>echo\"SEDMMMM\"; ghuihguig echo\"SOSM\";</p>"; $text = preg_replace_callback("/(\[pre\])+(.*?)(\[\/pre\])+/","zvyraznit",$text); echo ' <div class="obsah"> '.$text.' </div> '; ?> <code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">echo</span><span style="color: #DD0000">"SEDMMMM"</span><span style="color: #007700">;</span><span style="color: #0000BB">?></span> </span> </code><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">echo</span><span style="color: #DD0000">"SOSM"</span><span style="color: #007700">;</span><span style="color: #0000BB">?></span> </span> </code> <div class="obsah"> <p>1 ghuihguig 1</p> </div> echo ' <div class="obsah"> '.preg_replace_callback("/(\[pre\])+(.*?)(\[\/pre\])+/",function($shody) {return highlight_string($shody[2]);},"<p>echo\"SEDMMMM\"; ghuihguig echo\"SOSM\";</p>").' </div> '; Také nepomohlo... prosím vás, nevíte co s tím? |
||
Tori Profil |
#2 · Zasláno: 28. 4. 2012, 21:10:42
Someone:
Koukněte se, k čemu je druhý parametr highlight_string. |
||
Someone Profil |
#3 · Zasláno: 28. 4. 2012, 21:42:23
Ve snu by mě nenapadlo, že je defaultně nastavené printování.. Děkuju moc.
|
||
Časová prodleva: 12 let
|
0