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 :

Chaines trop longues


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Chaines trop longues
    Salut,

    Je souhaite couper des chaines trop longues pour ne pas perturber la mise en page. Sur un topic précédent, j'ai lu ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    $texte = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; 
    $longueur = 10; 
    $caractere = ' '; // Ce que tu utilises pour séparer le mot 
    $texte = preg_replace('`([[:alnum:][:punct:]]{'.$longueur.'})`smU','$1'.$caractere,$texte); 
    echo $texte; 
    ?>
    Ce qui fonctionne très bien avec un texte normal. Mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $texte = "<a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a>
    <a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a>";
    ça ne fonctionne plus les chaines sont coupés dans le code html... Comment prendre en compte les codes html?
    Idem avec le code que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $mots = explode(' ', $texte); 
    for($i=0;$i<count($mots);$i++) { 
       if (strlen($mots[$i]) > 49) { 
          $start_mot = substr($mot[$i], 0, 49); 
          $end_mot = substr($mot[$i], 49, strlen($mots[$i])); 
          $new_mot = $start_mot.' '.$end_mot; 
          $texte = str_replace($mots[$i], $new_mot, $texte); 
       } 
    }
    Merci

  2. #2
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Tu peux aussi utiliser la fonction wordwrap().
    (non applicable pour les balises HTML)

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci je ne connaissais pas mais ça ne résoud pas mon problème
    Ca coupe dans le code et ça plante ensuite à l'affichage.

    Quelqu'un aurait-il la solution? C'est vraiment important

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je reviens là dessus

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Une solution simple sera de remplacer simplement >< par > <, puis tu laisse le navigateur se charger du wrap. Seulement il ne faut pas que l'utilisateur tape intentionnellement ><...

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Désolé je n'ai pas compris. J'ai juste compris que c'était l'ouverture des balises mais pourquoi >< par > <?

  7. #7
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Bah avec un blanc entre > et <
    Comme ça, ta longueee chaine sera considerée par petits bouts...

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ah oui
    Je vais essayer.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. chaine trop longue pour être indexée
    Par ctobini dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 04/10/2007, 10h36
  2. Couper une chaine trop longue ?
    Par ThitoO dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 27/03/2007, 09h40
  3. Chaine trop longue
    Par valoji dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/10/2005, 14h10
  4. Erreur ORA-01704 : constante de chaine trop longue
    Par verrec_s dans le forum Oracle
    Réponses: 22
    Dernier message: 13/12/2004, 15h30
  5. chaine trop longue pour envoyer en socket?
    Par jeje.r dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/06/2003, 16h36

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