Post tekst før og efter preg_match
Hej Eksperter.Jeg ved ikke hvordan jeg skal forklare mig, så her kommer et billede af hvordan koden indtil videre ser ud.
http://imageload.dk/files/2cc2e00ea94a61651a0c894165996bbb.png
Herefter min kode, hvor jeg benytter preg_match for at matche alt mellem [kode] og [/kode].
<?php
function phpkode($php){
if(preg_match("@\[kode\](.*?)\[/kode\]@is", $php, $php)){
$php = stripslashes(highlight_string($php[1], true));
$php = explode ('<br />', $php);
$start = '<div class="tal">';
$slut = '</div>';
$i = 1;
foreach ($php as $tal) {
$tekst .= $start . $i . ' ' . $slut . str_replace("<br />", '', $tal) . "<br />";
$i++;
}
}
echo $tekst;
}
?>
Herefter poster jeg den ønskede tekst streng, hvori der bla. ligger de førnævnte tags [kode] og [/kode].
<?php
$hej = "Hej med jer eksperter.
Hvordan gaar det med jer inde bag skaermen?
Her gaar det godt, men disse linier kommer ikke med.
[kode]<?php
session_start(); // Starter Sessionen
if (session_is_registered('brugernavn') AND ('kodeord')) { // Tjekker om man er logget ind
include('top.php');
$ hent = mysql_query('SELECT * FROM butik_figur ORDER BY id DESC') or die(mysql_error());
while($vis = mysql_fetch_array($hent)) {
if($aendre == profil) { ?>
<?php echo 'form'; ?>
<form action='?show=profil&id=$login&aendre=profil' method='post'>
<input type='text' value='$p[koen]' /><br />
<input type='submit' value='Submit' />
</form>
<? } ?>[/kode]
Og hernede kommer almen tekst heller ikke med, hvordan loeser jeg dette?";
phpkode($hej);
?>
Problemet er så, at teksten før og efter mine tags [kode][/kode] ikke bliver vist som almen tekst.
Min kode virker ganske fint, hvis blot man kun har de tags i teksten - men ikke hvis man skriver en ordentlig smøre af tekst og vedlægger lidt kode.
Har læst mig til, at preg_match_all skulle kunne klare sagerne, men uanset hvordan jeg drejer og vender det så kan jeg bare ikke få det til at virke.
Håber derfor nogle af jer derude, kan guide mig frem til den rigtige løsning.
Med venlig hilsen
Mikkel Hanson