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 :

substr() pour couper la phrase


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut substr() pour couper la phrase
    bonjours, j'avais un code pour coupé la phrase

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
      if(strlen($donnees['contenu']) >= $max1){
      echo substr(code(stripslashes($donnees['contenu'])),0,$max1) . ' ... ';
    }else{
     echo code(stripslashes($donnees['contenu'])) . '';
    }
    echo '<p align="right"><a href="news/commentaire_news.php?id_ns='.$donnees['id'].'" title="Lire la suite de la news">Lire la suite...</a></p>';
    ?></div>

    et je voulais remettre sur mon nouveau code pour coupé la phrase

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo substr (code(stripslashes
    ' <a href="' . getLienModule ( "forum", "voirmessage" ) .
        '?fid=' . $data ['forum_id'])),0,$max1) . ' ... '
        '&amp;tid=' .
        $topicLine ['topic_id'] .
        '">' .
        ($topicLine ['topic_titre']) .
        '</a><br />' .
        LastPostedBy ( $data2 ["topic_id"], $data2 ["forum_membre_id"] ) .'
        </div>

    il ne veux pas me coupé mon titre du topic

    merci de votre aide

  2. #2
    Invité
    Invité(e)

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si tu écrivais plus proprement ton code, tu verrais mieux les erreurs que tu fais : c'est le titre que tu veux découper, pas le lien entier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $lien = getLienModule('forum', 'voirmessage') . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine['topic_id'];
    $titre = substr($topicLine ['topic_titre'], 0, $max1) . '...';
     
    echo '<a href="' . $lien . '">' . $titre . '</a><br />';
    echo LastPostedBy($data2['topic_id'], $data2['forum_membre_id']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    Merci, mais ça me bug l

    http://leprojet.legtux.org/forum.html

    voilà

    Code php : 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
    21
    22
    23
     
     
                //$topici = $pdo->query("SELECT topic_id,topic_titre FROM forum_topic WHERE forum_id=".$data['forum_id']);
            //$topicLine2 = $topici->fetch();
     
     
            if(!$r->rowCount())
                $display .= "\n\t\t".'<div class="Forum_contenu_message">&nbsp;</div><div class="Forum_contenu_dernier_message">N/A</div>'."\n\t".'</div> '."\n\t".'' . "\n\t";
            else
    $display .= "\n\t\t" .
                    '<div class="Forum_contenu_message">'.GetSuperMiniAvatarById( $data2 ["forum_membre_id"] ) .'</div>
     
     
    				<div class="Forum_contenu_dernier_message">';
     
    				$lien = getLienModule('forum', 'voirmessage') . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine['topic_id'];
    $titre = substr($topicLine ['topic_titre'], 0, $max1) . '...';
     
    echo '<a href="' . $lien . '">' . $titre . '</a><br />';
    echo LastPostedBy($data2['topic_id'], $data2['forum_membre_id']);
     
    echo '
                    </div></div>' .

    c'est bizarre il me fait planté le cadre.

    Merci de votre aide

  5. #5
    Invité
    Invité(e)
    Par défaut
    Des </div> en trop.

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    ce n'est pas un div c'est sur ce code qui fait un peut planté

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="Forum_contenu_dernier_message">';
    $lien = getLienModule('forum', 'voirmessage') . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine['topic_id'];
    $titre = substr($topicLine ['topic_titre'], 0, $max1) . '...';
    echo '<a href="' . $lien . '">' . $titre . '</a><br />';
    echo LastPostedBy($data2['topic_id'], $data2['forum_membre_id']);'
    </div>

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais définir "faire planter un cadre" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    ça fonctionne :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    				<div class="Forum_contenu_dernier_message">';
    				$max1=100;
    				$lien = getLienModule('forum', 'voirmessage') . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine['topic_id'];
    				$titre = substr($topicLine ['topic_titre'], 0, $max1) . '...';
     
    				echo '<a href="' . $lien . '">' . $titre . '</a><br />';
    				echo LastPostedBy($data2['topic_id'], $data2['forum_membre_id']);'
                    </div>

    mais ca me fait planté mon tableau sniff

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    tu utilises parfois et parfois il y a pas un de trop ? encore un probleme de copier/collé ?

    attention ca aussi, c'est la base ! il suffit juste de lire !

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    Citation Envoyé par papajoker Voir le message
    tu utilises parfois et parfois il y a pas un de trop ? encore un probleme de copier/collé ?

    attention ca aussi, c'est la base ! il suffit juste de lire !
    non ce n'est pas qui me fait bug regardes mon 1 er post il y a data2 et topicLine

  11. #11
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    lol

    il me semble que ca "plantait" déja au premier post non ?

    Et suis désolé pour toi mais je ne peux pas aidé une personne qui plante, je ne suis pas un surhomme

  12. #12
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    depuis le nouveau code qui me fait planté le cadre

  13. #13
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Que veux-tu dire par "planter" ?
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  14. #14
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    voilà le code

    Code php : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
                // si un jour je remets un coin arrondit bas cest là je mettrais entre guillemet
                    $display .= '';
     
                $display .= "\n\t".($cat==NULL?'':'    ').'
    			             ';
                $display .= ''.htmlspecialchars($data['cat_nom']).''."\n\t".'
    						 '.$totalTopicCat->rowCount().' Sujets<br />'.$totalPostCat->rowCount().' Réponses
    						 &nbsp;
    						 '.htmlspecialchars($data['cat_nom']).'';
     
     
                        $cat = $data["forum_cat_id"];
            }
            $data['forum_id'];
     
                $topic = $pdo->query("SELECT topic_id,topic_titre FROM forum_topic WHERE forum_id=".$data['forum_id']);
            $topicLine = $topic->fetch();
     
            if($topicLine['topic_id'])
            {
                $sql2 = "SELECT * FROM forum_post WHERE topic_id=".$topicLine['topic_id']." ORDER BY post_time DESC LIMIT 1";
                $sqll = $pdo->prepare($sql2);
                $sqll->execute();
     
                $q2 = $sqll->fetch();
            }
            $display .= "\n\t".'    ';
     
            if($topicLine['topic_id'])
            {
                $fvquery = 'SELECT * FROM forum_forum_view JOIN forum_post ON fv_post_id=post_id WHERE fv_membre_id=? AND fv_topic_id=? AND fv_post_id=?';
                $fv = $pdo->prepare($fvquery);
     
                if(isset($_SESSION['id']))
                    $fv->execute(array($_SESSION['id'],$topicLine['topic_id'],$q2['post_id']));
                else
                    $fv->execute(array(-1,$topicLine['topic_id'],$q2['post_id']));
     
                if(!$fv->rowCount())
                    $syslu = '<img src="'.DIR_DESIGN.'/'.getDesignName().'/images/forum/non_lu.gif" title="Nouvelles réponses" alt="Nouvelles réponses" height="20"/>';
                    else
                    $syslu = '<img src="'.DIR_DESIGN.'/'.getDesignName().'/images/forum/lu.gif" title="Pas de nouvelles réponses"  alt="Pas de nouvelles réponses" height="20"/>';
            }
            $display .= ''.$syslu.'';
            $display .= ''."\t\t\t" . '<a href="' . getLienModule($_GET["m"],"voirtopic") .'?fid=' . intval($data["forum_id"]) . '&amp;num=1">' . $data['forum_name'] . '</a>
    		                          <br />
    								  '.$data['forum_desc'].'';
            $display .= "\n\t\t".'' . $topic->rowCount() . ' Sujets<br />' . $post->rowCount() . ' réponses';
     
     
             $query2 = 'SELECT topic_id,forum_membre_id FROM forum_post WHERE post_forum_id=? ORDER BY topic_id DESC';
     
                $r = $pdo->prepare($query2);
                $r->execute(array($data["forum_id"]));
     
                $data2 = $r->fetch();
     
                //$topici = $pdo->query("SELECT topic_id,topic_titre FROM forum_topic WHERE forum_id=".$data['forum_id']);
            //$topicLine2 = $topici->fetch();
     
     
            if(!$r->rowCount())
                $display .= "\n\t\t".'&nbsp;N/A'."\n\t".' '."\n\t".'' . "\n\t";
            else
    $display .= "\n\t\t" .
                    ''.GetSuperMiniAvatarById( $data2 ["forum_membre_id"] ) .'				
     
    				';
    				$max1=100;
    				$lien = getLienModule('forum', 'voirmessage') . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine['topic_id'];
    				$titre = substr($topicLine ['topic_titre'], 0, $max1) . '...';
     
    				echo '<a href="' . $lien . '">' . $titre . '</a><br />';
    				echo LastPostedBy($data2['topic_id'], $data2['forum_membre_id']);'
                    ' .
                    "\n\t" .
                    '  ' .
                    "\n\t" .
                    '  ' .
                    "\n\t"
            ;        $j++;
     
                  $r->closeCursor();
        }

    donc c'est la ligne 70 qui me fait bug

    car il me fait passé en haut de la page

    he oui ca vient du code substr

    si vous pouvez voir pour quoi

    merci de votre aide

  15. #15
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    tu n'aurais pas oublié des parenthèses {} dans ton if else, lignes 63 et suivantes ?

  16. #16
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    bon, je comprend rien,

    "ca bug" signifie uniquement que tu as un probleme d'affichage ?
    php ne plante pas ligne 70 apparemment ? (vue copie écran)

    pour ton affichage "tableau" tu utilises des "\t" !!!!!!!!!!!!!!!!!!!!!!!!!

    pas en html pour une mise en page on doit utiliser des balises html !

  17. #17
    Inactif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 164
    Par défaut
    je dis pour ceux qui n'ont pas vu mon message.

    si je mets :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="' . getLienModule ( "forum", "voirmessage" ) . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine ['topic_id'] . '">' . ($topicLine ['topic_titre']) . '</a><br />' . LastPostedBy ( $data2 ["topic_id"], $data2 ["forum_membre_id"] ) .'';
    là ça marche l'affichage.

    mais quand je mets ce code avec couper la phrase avec pointillés :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $max1=100;
    $lien = getLienModule('forum', 'voirmessage') . '?fid=' . $data['forum_id'] . '&amp;tid=' . $topicLine['topic_id'];
    $titre = substr($topicLine ['topic_titre'], 0, $max1) . '...';
     
    echo '<a href="' . $lien . '">' . $titre . '</a><br />';
    echo LastPostedBy($data2['topic_id'], $data2['forum_membre_id']);
    cette partie est passé en haut du forum.

    Donc c'est ce code qui me fait planté.

    Merci.

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

Discussions similaires

  1. [XSLT] Comment couper une phrase "proprement"?
    Par manuds dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 20/12/2007, 09h07
  2. algorithme pour chercher une phrase dans un texte
    Par kha_yassine dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 22/06/2007, 22h24
  3. Couper une phrase en 2
    Par nico63vb dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/02/2007, 17h21
  4. [Conversion]Comment faire pour couper un Double trop long?
    Par dessinateurttuyen dans le forum Général Java
    Réponses: 1
    Dernier message: 13/11/2005, 02h22
  5. Réponses: 1
    Dernier message: 20/09/2005, 16h55

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