kuz Posté 10 Juin 2005 Posté 10 Juin 2005 Bonjour à tous, Je travail sur un petit chat en php/mysql et je suis tombé sur un os que je n'ai pu que partiellement résoudre... Voila, lorsque je remonte le message posté par un utilisateur, je fait en sorte que tout les 55 caractères, un <br /> soit inséré (pour garder une bonne mise en page). Jusque la, aucun problème. Le problème se pose maintenant, je gère aussi des smileys, qui sont detecté lors de l'affichage par un codage du style "::smyle1::". Malheureusement, si un smiley commence au 53ème caractère, le code donnera "::<br />smyle1::" et cela empèche l'affichage. Comment puis-je résoudre cela ? Je ne vois pas comment detecté le smyle au millieu d'une chaine de caractère. Mon autres problèmes est moin grave, mais si un utilisateur tape un texte, que au 50ème caractère il fasse une mise à la ligne, et qu'il continu de taper, sont texte donnera : 50 caractères normal - mise à la ligne - 5 caractères - mise à la ligne. Ce qui n'est pas bien. Voici le script pour limiter ma chaine de caractère : $lgr = 55; $temp = ''; $i = 0; if(strlen($msg) > $lgr){ do{ $temp = $temp.substr($msg, $i, $lgr).'<br />'; $i = $i + $lgr; }while($i <= strlen($msg)); $msg = $temp; } Le script s'effectue avant de remonter le message dans mysql. Merci pour votre aide, @+
Thanh Posté 10 Juin 2005 Posté 10 Juin 2005 Salut, intéresse toi à la fonction http://fr2.php.net/manual/fr/function.wordwrap.php
z0e Posté 11 Juin 2005 Posté 11 Juin 2005 salut, compte tes mots sans les couper <?$nbcar = 200;$Texte = (strlen($Texte) > $nbcar) ? ereg_replace("(.{$nbcar})( .*)$","\\1 ...", $Texte) : $Texte;?>
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant