IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Couper phrase trop longue dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 68
    Points : 43
    Points
    43
    Par défaut [Tableaux] Couper phrase trop longue dans un tableau
    Salut,

    Voila, j'ai un tableau, avec dans chaque ligne du tableau une phrase écrite, mais parfois, cette phrase est trop longue, et cause donc un retour a la ligne a l'intérieure de la cellule, et donc j'ai une cellule plus épaise que les autres.

    je voudrais éviter ca en discontinuant les ligne qui arrive en bout de cellule par ".." par exemple. J'ai pour l'instant réussi a le faire mais en spécifiant un nombre fixe de charactère :

    $string = "mmmmmm mmmmm mmmm llllll lllll llll";

    if (strlen($string) > 20)
    echo substr($string, 0, 20)."..";

    Ca marche, le problème, ce que une phrase avec beaucoup de grosse lettre comme le "m" sera plus longue qu'une autre avec pourtant le meme nombre de caractère. Ce qui fait que parfois certaines phrases sont coupées alors qu'elles auraient pues s'afficher en totalités.

    J'aurais voulu savoir si il existait un autre moyen, qui lui détecterais réellement le retour a la ligne dans le tableau ou la longueur en pixel de la phrase.

    Voila j'espere j'ai été plus ou moins clair ^^

    Merci pour votre aide.

  2. #2
    Membre actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 276
    Points
    276
    Par défaut
    Apparemment ya pas grand monde qui connais le moyen de faire cela !!
    Personnellement j'ai longtemps chercher la méthode mais j'ai jamais trouvé !!

    Et si ya une personne qui connais la méthode se serait vraiment interressant et je pense que pas mal de monde voudrez savoir

    J'ai déjà vu des sites qui font cela donc ça doit être possible !

    Moi je me suis résigner à utiliser du CSS en spécifiant pour mon bloc

    ce qui permet de cacher la suite de mon texte sans agrandir le bloc dans lequel il se trouve

  3. #3
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 241
    Points
    8 241
    Par défaut
    salut,
    en fait, il suffirait de récupérer la taille de chaque caractère en pixel et avec une fonction php, ça pourrait le faire... après, ça posera peut-être un problème si le client n'a pas la police demandée et que ça prenne une autre police... il suffit de ne pas prendre une police trop exotique verdana, arial ou un truc comme ça, c'est très répandu !

    je m'amuserai à le faire demain

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Le problème est que tu ne contrôles pas ce qu'il se passe chez le client. Tu peux essayer de lui imposer une fonte mais rien ne t'assure qu'il l'aura et que son navigateur ne la changera pas.

    Il en va de même avec le tableau : tu n'as aucun moyen de savoir quelle taille prendra le tableau si tu ne la spécifies pas dans le HTML, et encore : la fenêtre du navigateur pourrait être redimensionnée en-deçà de ta valeur et ça foirerait ta présentation.

    Je pense que le plus efficace dans ton cas serait de générer une image avec ton texte. C'est bourrin mais c'est le seul réel moyen d'imposer (à ce point) une présentation au client. Et, pour le coup, tu contrôleras parfaitement la taille de tes pixels...


    [Edit] J'imagine qu'il te faudrait un alias de wordwrap() qui fonctionne au nombre de pixels plutôt qu'au nombre de caractères ?
    Wormus : As-tu un exemple de site qui le fait, stp ?

Discussions similaires

  1. [XSL~FO] Comment couper une phrase trop longue?
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/03/2008, 16h29
  2. [Tableaux] Stocker un fichier texte dans un tableau
    Par clairette59 dans le forum Langage
    Réponses: 13
    Dernier message: 28/01/2006, 00h48
  3. Réponses: 15
    Dernier message: 02/12/2005, 18h12
  4. Réponses: 4
    Dernier message: 28/10/2005, 14h32
  5. [Tableaux] Recherche d'une chaine dans un tableau
    Par tom06440 dans le forum Langage
    Réponses: 5
    Dernier message: 21/10/2005, 00h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo