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 :

Couper un message à plus de 20 caractères en PHP (substr)


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    Points : 91
    Points
    91
    Par défaut Couper un message à plus de 20 caractères en PHP (substr)
    Bonjour tout le monde !
    Voila j'ai un probleme en php car je voudrai faire de tel sorte tous les messages qui dépassent plus 20 caractéres soient couper mais chez moi il me coupe méme ceux qui ont 2 caracteres.
    Voici mon scripte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($data = mysql_fetch_assoc($resultat))
    {
    	print("<tr><td>".$data['date_recep']."</td><td>".$data['heure_recep']."</td><td>".$data['num_expediteur']."</td><td>".$data['num_dest']."</td><td>".substr($data['message'],0,20)."[...]</td></tr>");
    }
    Si vous pouvez m'aider
    Merci de votre comprehension

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    mais chez moi il me coupe méme ceux qui ont 2 caracteres
    Et ils sont coupés à combien de caractères ???

  3. #3
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    qu'est-ce que tu entends par "couper" ? quel est l'effet observé que tu voudrais supprimer pour les chaîne de longueur < 20 caractères
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  4. #4
    Invité
    Invité(e)
    Par défaut
    plus dexplication stp

    je crois comprendre que si la chaine depasse 20 caracteres alors tu ajoutes les [...] et si c'est moins de 20 caracteres tu ne fais rien c'est ça?

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    Points : 91
    Points
    91
    Par défaut
    Merci de répondre !
    OUI c 'est ca rbaatouc si le message depasse 20 caracteres on coupe sinon on fait rien.
    vous avez compris ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    dans ce cas tu fais juste une condition sur la =longueur de la chaine
    si la longueur de ta chaine >= à 20 alours tu fais ton substr sinon tu fais rien tu laffiches tel quelle

    pour la longueur : $taillechaine=strlen($chaine);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    while($data = mysql_fetch_assoc($resultat))
    {
    print("<tr>
    <td>".$data['date_recep']."</td>
    <td>".$data['heure_recep']."</td>
    <td>".$data['num_expediteur']."</td>
    <td>".$data['num_dest']."</td>
    <td>".
    if(strlen($data['message']>=20)
    {
    echo substr($data['message'],0,20)."[...]";
    }
    else
    {
    echo $data['message'];
    }
    ."
    </tr>");
    }

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (strlen($chaine)>=20)?(substr($chaine,0,20)."..."):($chaine)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kerod
    de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (strlen($chaine)>=20)?(substr($chaine,0,20)):($chaine)
    jai detaillé avec les if pour etre plus clair mais comme ça c'est bon aussi noublie pas les [...] aprés le substr

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    Points : 91
    Points
    91
    Par défaut
    Merci rbaa!
    Si vous pouvez etre plus clair car je suis debutant en php
    ou dois je effectuer la condition ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($data = mysql_fetch_assoc($resultat))
    {
    	print("<tr><td>".$data['date_recep']."</td><td>".$data['heure_recep']."</td><td>".$data['num_expediteur']."</td><td>".$data['num_dest']."</td><td>".substr($data['message'],0,20)."[...]</td></tr>");
    }
    Merci de vouloir bien m'expliquer

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    en gros c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     while($data = mysql_fetch_assoc($resultat))
    {
        print("<tr><td>".$data['date_recep']."</td><td>".$data['heure_recep']."</td><td>".$data['num_expediteur']."</td><td>".$data['num_dest']."</td><td>".((strlen($chaine)>=20)?(substr($data['message'],0,20)):($data['message']))</td></tr>");
    }

  11. #11
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    Points : 91
    Points
    91
    Par défaut
    il me renvoit maintenant cette erreur:
    Parse error: parse error, unexpected '/' in /usr/local/apache/htdocs/interfaces_admin/administration/filtre.php on line 61
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("<tr><td>".$data['date_recep']."</td><td>".$data['heure_recep']."</td><td>".$data['num_expediteur']."</td><td>".$data['num_dest']."</td><td>".((strlen($data['message'])>=20)?(substr($data['message'],0,20)):($data['message']))</td></tr>");

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("<tr><td>".$data['date_recep']."</td><td>".$data['heure_recep']."</td><td>".$data['num_expediteur']."</td><td>".$data['num_dest']."</td><td>".((strlen($data['message'])>=20)?(substr($data['message'],0,20)):($data['message']))."</td></tr>");

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Oui il manquait la reprise de la chaine donc erreur logique

  14. #14
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    Points : 91
    Points
    91
    Par défaut
    Meeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrrrrciiiiiiiii les amis c résolu

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

Discussions similaires

  1. Plus de 255 caractères
    Par krfa1 dans le forum Access
    Réponses: 7
    Dernier message: 13/03/2006, 17h01
  2. [xsl][xslfo][fop]pas plus de 512 caractères
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/01/2006, 17h02
  3. SQL de plus de 255 caractères dans un recordset
    Par acama dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 05/01/2006, 15h50
  4. JDBC : requete de plus de 4000 caractères
    Par Endymion222 dans le forum JDBC
    Réponses: 1
    Dernier message: 01/12/2005, 17h00
  5. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07

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