Aller au contenu

Pb de mise en forme de chaine


Sujets conseillés

Posté

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. :angry:

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,

@+

;)

Posté

salut,

compte tes mots sans les couper ;)

<?
$nbcar = 200;
$Texte = (strlen($Texte) > $nbcar)
        ? ereg_replace("(.{$nbcar})( .*)$","\\1 ...", $Texte)
        : $Texte;
?>

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...