le 28/08/2003 à 11:52
Layer
Lu all !
je poste ce code ça peux toujour servir, c'est un peu barbare mais si vous voulez respecter les normes w3c c'est l'un des moyen que je vous propose
utilisation simple, entrer votre texte comme ceci :
[ list ]
item1
item2
item3
[ / list ]
Note :
[list]
[*]j'ai volontairement séparer les balise avec des espace pour pas que c'est interpréter
[*] a chaque nouvelle objet de la liste vous devez faire un retour a la ligne
[/list]
Comme un script n'est pas forcément terminer ou bien fait, je vous invite donc a optimiser le code ci dessus
je poste ce code ça peux toujour servir, c'est un peu barbare mais si vous voulez respecter les normes w3c c'est l'un des moyen que je vous propose
// 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;
?>
utilisation simple, entrer votre texte comme ceci :
[ list ]
item1
item2
item3
[ / list ]
Note :
[list]
[*]j'ai volontairement séparer les balise avec des espace pour pas que c'est interpréter
[*] a chaque nouvelle objet de la liste vous devez faire un retour a la ligne
[/list]
Comme un script n'est pas forcément terminer ou bien fait, je vous invite donc a optimiser le code ci dessus