Version complète: sur le forum Webmaster Hub : Couper un texte en 3 parties égales
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
LJames23
Bonjour,

je poste ici mon premier message même si je suis le forum depuis déjà de nombreuses semaines. Il est vraiment super complet pour trouver plein d'infos.

je galère depuis plusieurs jours concernant la mise en page de mes articles, aussi je sollicite vos lumières pour tenter de trouver une solution. Je m'explique, je voudrais pouvoir afficher mes articles extraits de ma base de données en 3 colonnes de même longueur (à la façon d'un journal) sachant que chaque article est dans un champ de type Text. J'ai bien pensé à la fonction wordwrap() ou chunk_split() mais je ne sais pas comment mettre en place cela. Si vous pouviez me donner une piste de recherche ou un bout de script me permettant d'avancer, ce serait super. :-)
Je vous remercie d'avance !

Pierre smile.gif
KaRaK
Bonjour,

Placer tout le texte dans une variable.
Utiliser strlen() pour connaitre la longueur du texte.
Diviser par trois pour connaitre le nombre de caracteres à mettre dans une colonne.
Decouper la chaine en 3 parties egales avec substr().

Mais il risque d'y avoir des mots decoupés...

Peut etre qu'en utilisant explode(), puis calculer la taille du tableau etc...
$texte = explode(" ", $texte);

Une solution de ce type n'est surement pas tres performante mais c'est la seule chose qui me traverse l'esprit.

Bon courage smile.gif
michmuch51
Salut et Welcome to the Hub smile.gif

je ne suis pas sure de comprendre pourquoi vous chercher des fonctions pour la mise en page d'article que l'on appelle d'une bdd.

Pourquoi ne pas utiliser tout simplement un tableau ou des div pour faire ta mise en page??? huh.gif
LJames23
Merci de vos réponses, ça y est j'ai une solution. Je copie le code en dessous pour ceux que ça pourrait intéresser wink.gif

CODE
<?php
$chaine = "Salut, je vais essayer de couper cette chaine en trois parties égales.";
$longueur = strlen($chaine);
$longueur = $longueur / 3;
$partie = explode("\n", wordwrap($chaine,$longueur));

echo "$partie[0]<br>";
echo "$partie[1]<br>";
echo "$partie[2]<br>";
?>
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.