Hallo, ik zit nu al een halve dag te zoeken naar het fout in mijn script; kan iemand me hier misschien helpen.
Het zit zo dat ik geen output krijg maar dus wel een verwacht
hier is het script:



<?php

function lijst($wat, $tekst){
$deel = explode("[*]", $tekst);
$aantal = count($deel) - 1;

if ($aantal == 0){
$error= 1;
} elseif($aantal == 1){
$nieuwetekst = $deel[1];
} else {
$nieuwetekst = "";
for($i=1;$i<=$aantal;$i++){
$nieuwetekst .= "</ul><ul>".$deel[$i];
}
}


if ($error != 1){
if($wat == "bol"){
$tekst = "<ul><li>".$nieuwetekst."</li></ul>";
} elseif($wat == "num"){
$tekst = '<ol type="1"><li>'.$nieuwetekst."</li></ol>";
} else{
$tekst = '<ol type="a"><li>'.$nieuwetekst."</li></ol>";
}
}

return $tekst;
}


#####dat was de code nu een voorbeeld; oke dit forum zet dit presies om :s dan maar met een spatie ertussen


$Bericht = "
  • testje
  • of tweee
\n
[list=1][*]testje[/list]\n
[list=a]niets[/list]\n
";



#### en dan hier de regex om de code om te zetten
// lists:
//gewone
$Bericht = preg_replace ( "#
  • (.*?)
", 'lijst("bol", "\\1")', $Bericht);
$Bericht = preg_replace ( "#
  • (.*?)
", 'lijst("bol", "\\1")', $Bericht);
//numerieke
$Bericht = preg_replace ( "#[LIST[:=]1](.*?)[/LIST]", 'lijst("num", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list[:=]1](.*?)[/list]", 'lijst("num", "\\1")', $Bericht);
//alfabetische
$Bericht = preg_replace ( "#[LIST[:=]a](.*?)[/LIST]", 'lijst("alf", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list[:=]a](.*?)[/list]", 'lijst("alf", "\\1")', $Bericht);
$Bericht = str_replace ("\n", "<br />", $Bericht);



##### en echo en
echo ($Bericht);

?>




veel dank!
#[list[:=]1](.*?)[/list]

moet dat niet zijn:

<?
$Bericht = preg_replace("/\[list=(.+?)](.+?)\[\/list\]/is", 'lijst($1, $2)', $Bericht);
?>

??
sorry, nog steeds geen output....

+ ik denk eerder dat er iets mis is met de functie want ik heb al mijn regex ongeveer zo gemaakt en die werken wel...
en als je nou eens $error in die functie returned, krijg je dan wel wat? doe eens gewoon in functie:

echo $error . "<P>";
echo $nieuwetekst . "<P>";
raar; steeds geen output....

oké ik denk dat ik het weet!; de functie word gewoon verkeerd aangeroepen dus de regex zijn verkeerd.

nu heb ik dit geprobeerd:

<?php

$Bericht = preg_replace ( "#\[LIST\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 47";
}
$Bericht = preg_replace ( "#\[list\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 51";
}
//numerieke
$Bericht = preg_replace ( "#\[LIST[:=]1\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 56";
}
$Bericht = preg_replace ( "#\[list[:=]1\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 60";
}
//alfabetische
$Bericht = preg_replace ( "#\[LIST[:=]a\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 65";
}
$Bericht = preg_replace ( "#\[list[:=]a\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 69";
}


?>

en ik krijg alle errors maar ik begrijp het niet want voor mij zien die regex er goed uit :s

yes ik heb het gevonden; ik was de # en de #si vergeten in de regex

maar nu nog een bijkomende fout:
ik kom dit uit als output:

lijst("bol", [*]testje[*]of tweee)

maar normaal zou die lijst(blabla) een functie moeten uitvoeren die het omzet naar een echte list...
weet iemand hoe het komt dat hij dit niet doet
oké ik heb het gemaakt gekregen! bedankt voor je hulp bas!

opl:
_\[list[:=]a\](.*?)\[/list\]_ise

Reageren