Opracowuję sobie BBcode na stronę. Wszystko robię przy pomocy funkcji preg_replace() i tak doszedłem do znacznika [ code ][/ code ]. Postanowiłem, że kod będę wyświetlał przy pomocy listy numerowanej <ol></ol>, każdą linijkę oddzielnie pomiędzy <li><code>, a </code></li>. Przy tym ostatnim pojawił się problem, gdyż nijak nie mogę zastosować na atomie (zwracanym wewnątrz funkcji preg_replace()) instrukcji listowania, która zamienia każdy wiersz na <li><code>{zawartość}</code></li>.
<?php
function wylistuj( $char, $string, $open, $close ) {
$count = count($explode); $list='';
for( $x=0;$x<$count;$x++ ) {
$list .= $open.$explode[$x].$close.'
';
}
return $list;
}
function bbcode($string) {
$tekst = preg_replace("#[ code ](.*?)[/ code ]#", '<ol>'.wylistuj
("\n", nl2br('1'), '<li><code>', '</code</li>').'</ol>', $tekst); return $tekst;
}
?>