longeur de chaines

Répondre
Chad
le 05/09/2004 à 19:11
Chad
lo tlm

bon voila mon petit probleme :

il faut que je coupe des chaines de caracteres pour pas qu'elles ne soient trop longues et que donc elles fassent foirer le design

j'ai éssayé en faisant un truc genre

<? 
$nbr1 = strlen("$string");

if($nbr1 > 13)
{
$string = substr($string, 0, 13);
$string = $string." ...";
}

echo $string;
?>


a premiere vue ca marche bien sauf que apres qq tests on remarque qu'une chaine composée uniquement par des petits caracteres sera bcp plus courte au final qu'un chaine composée de OOOOO par exemple

d'ou ma question :

est ce que qq'un connait un meilleur moyen pour limiter la longueur une chaine de carateres (en prenant en compte la taille des caracteres ou avec une limite en pxl ...) ?

merci :)
-Ch4d-
Chad
le 05/09/2004 à 21:29
Chad
mmm rien a voir

cette astuce sert juste a couper une chaine en plusieurs petites chaines
-Ch4d-
LA GLOBULE
le 06/09/2004 à 01:20
LA GLOBULE
Grosse galere ca :)

- Si tu fixes la taille de la police de caractere de ton site, on pourrait (dans l'absolu) "étudier" tous les caracteres d'une chaine (et donc de connaitre sa taille en pixel) et ainsi la decomposer au mieux (sachant que la lettre occupant la plus "grande place" est le W majuscule), mais cela consommera enormement de ressources :/
- Si tu ne fixes pas la taille de la police du site, tu ne pourras pas empecher tes visiteurs de changer la taille des caracteres, d'où probleme...

Bref, le mieux reste de decouper les grandes chaines de caracteres en plusieurs morceaux (à mon avis).
BornToBe
le 10/09/2004 à 09:55
BornToBe
Tiens, j'ai trouvé ça par hasard sur le net et j'ai pensé à toi; je sais plus où - je crois que c'est allhtml - peut-être celà t'aidera t-il...
<?
$max_caracteres=50;
$texte="Ce texte doit être affiché mais il est trop long, donc il va falloir le tronquer.";
// Test si la longueur du texte dépasse la limite
if (strlen($texte)>$max_caracteres)
{
// Séléction du maximum de caractères
$texte = substr($texte, 0, $max_caracteres);
// Récupération de la position du dernier espace (afin déviter de tronquer un mot)
$position_espace = strrpos($texte, " ");
$texte = substr($texte, 0, $position_espace);
// Ajout des "..."
$texte = $texte."...";
}
?>

Bonne chance!

BTB
Nì heolas go haontìos
Chad
le 10/09/2004 à 22:43
Chad
merci BornToBe mais j'avais déja crée ce scipt par moi meme :)

j'ai besoin que ma chaine de caractere ne dépasse pas un certains nombres de pixels sinon c'est tout le design avec les images etc qui partent en vrille

personne d'autre n'a de solution envisageable ? :)

thx
-Ch4d-
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours