
le 28/08/2003 à 14:23
Astuces pour les listes

<?
for($i=0;$i<(sizeof($tab));$i++):
if($tab[$i]==''):
$txt_return .= '';
else:
$txt_return .= "<li>".$tab[$i]."</li>\n";
endif;
endfor;
?>
et voila

<?
for($i=0;$i<(sizeof($tab));$i++):
if($tab[$i]==''):
$txt_return .= '';
else:
$txt_return .= "<li>".$tab[$i]."</li>\n";
endif;
endfor;
?>
<?php
$Text=$_POST['txt'];
function item($Text) {
$txt_return = '';
if($Text[2]==="l"):
$txt_return .= "<ul class=\"listdecimal\">\n";
elseif($Text[2]==="i"):
$txt_return .= "<ul class=\"listlowerroman\">\n";
elseif($Text[2]==="I"):
$txt_return .= "<ul class=\"listupperroman\">\n";
elseif($Text[2]==="a"):
$txt_return .= "<ul class=\"listloweralpha\">\n";
elseif($Text[2]==="A"):
$txt_return .= "<ul class=\"listupperalpha\">\n";
else:
$txt_return .= "<ul class=\"listbullet\">\n";
endif;
$txt = nl2br($Text[3]);
$tab = explode("",$txt);
for($i=1;$i<(sizeof($tab)-1);$i++):
$txt_return .= "<li>".$tab[$i]."</li>\n";
endfor;
$txt_return .= "</ul>\n";
return $txt_return;
}
if($Text):
$Text = nl2br($Text);
$Text = preg_replace_callback('`\[list(=(.+?))?\](.+?)\[/list\]`si', 'item' ,$Text);
echo $Text;
endif;
?>
// Un formulaire simple
<form action="test.php" method="post">
<textarea name="txt" cols="10" rows="5"></textarea><br>
<input type="submit">
</form>
<?php
$txt=$_POST['txt'];
// Fonction destiner a encadrer le text avec les balise <li></li>
function item($txt) {
// texte de retour avec la balise d'ouverture
$txt_return = "<ul>\n";
// On ajoute des retour a la ligne car le paramètre qui sera entrer est un tableau
$txt = nl2br($txt[1]);
// On eclate tou ça :)
$tab = explode("",$txt);
// Puis une boucle va compter le nombre d'élement contenu et encradrer cette element
for($i=1;$i<(sizeof($tab)-1);$i++):
$txt_return .= "<li>$tab[$i]</li>\n";
endfor;
$txt_return .= "</ul>\n";
return $txt_return;
}
if($txt):
$txt = nl2br($txt);
$txt = preg_replace_callback('`\[list\](.+?)\[/list\]`si', 'item', $txt);
echo $txt;
endif;
?>