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 :

afficher n caractères textuel dans chaine html


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut afficher n caractères textuel dans chaine html
    Bonjour,

    je développe actuellement un script de news html.
    seulement à l'affichage sur le site je veux afficher seulement n caracteres par news.
    étant donné que j'enregistre en base la news avec le code html, si je veux afficher les 100 premiers caracteres il prendre en compte le code.
    par consequent, en fonction du code html je n'aurait pas forcement les memes longueurs de texte.
    de plus, il se peut que la coupure se fasse en 2 balises...

    j'utilise alors la fonctionanlité suivante pour supprimer le code html et je lui indique que je souhaite afficher les 100 caracteres:
    $texte = substr(strip_tags($montexte),0,100);

    seulement je n'ai plus de code html.

    ma question est :
    comment afficher les 100 1er caracteres texte avec le code inclus.

    Merci d'avance.

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonjour,

    Je pense que l'idée de n'afficher que les 100 premiers caractères avec le code, n'est pas très bonne et oui, imagine qu'au 99eme caractère tu ai cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='tata.php'>a...
    Tu peux te retrouver avec un lien qui sera toute ou une partie de ta page...

    Pour ma part à éviter

    ta méthode au dessus est plus adaptée (pour moi)...

    ++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    en fait, je pense que je vais afficher les X 1er caracteres en texte normal et le code html se verra dans la news complete.
    sinon, il peut y avoir des soucis d'affichage.

  4. #4
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    oui, je pense que c'est mieux, du moins c'est ce qui est utilisé sur la plupart des sites qui propose un petit résumé des news...

    ++

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 188
    Points : 121
    Points
    121
    Par défaut
    Bonjour,

    Personnellement j'utilise deux fonctions qui sont les suivantes :
    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
    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
    //nettoye un texte de toutes ses balises HTML
    function clean($chaine)
    {
    	$chaine = ereg_replace("<[^>]*>", "", $chaine);
    	$chaine = str_replace('&eacute;','é',$chaine);
    	$chaine = str_replace('&egrave;','è',$chaine);
    	$chaine = str_replace('&ecirc;','ê',$chaine);
    	$chaine = str_replace('&euml;','ë',$chaine);
    	$chaine = str_replace('&agrave;','à',$chaine);
    	$chaine = str_replace('&acirc;','â',$chaine);
    	$chaine = str_replace('&auml;','ä',$chaine);
    	$chaine = str_replace('&icirc;','î',$chaine);
    	$chaine = str_replace('&iuml','ï',$chaine);
    	$chaine = str_replace('&ocirc;','ô',$chaine);
    	$chaine = str_replace('&ouml;','ö',$chaine);
    	$chaine = str_replace('&ugrave;','ù',$chaine);
    	$chaine = str_replace('&ucirc;','û',$chaine);
    	$chaine = str_replace('&uuml;','ü',$chaine);
    	$chaine = str_replace('&ccedil;','ç',$chaine);
    	return $chaine;
     
    }
     
    //Coupure (nette) d'une phrase
    function cut_sentence($Texte,$nbcar=0) 
    { 
        if ( strlen($Texte) > $nbcar && (0!=$nbcar) ) 
        { 
            $Tmp_Tb = explode( ' ', $Texte ); 
            $Tmp_Count = 0; 
            $Tmp_O = ''; 
     
            while( list(,$v) = each($Tmp_Tb) ) 
            { 
                if ( strlen($Tmp_O) >= $nbcar ) break; 
                $Tmp_O .= $v.' '; 
            } 
            $Tmp_O = substr( $Tmp_O, 0, strlen($Tmp_O)-1 ); 
            if ( count($Tmp_Tb) > 1 ) 
            $Tmp_O .= '...'; 
     
        } 
        else 
            $Tmp_O = $Texte; 
     
        return $Tmp_O; 
    }
    La première supprime toutes les balises HTML, il ne te reste plus que le texte, la seconde coupe un texte sans couper les mots.

    donc si tu as ton texte dans une variable $texte, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $texte_sans_balises = clean($texte);
    $texte_final=cut_sentence($texte_sans_balises ,100); 
    echo $texte_finale;

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Sinon :

    Pour les 100 premiers caractères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte_final = substr(html_entity_decode($le_texte), 0, 100) . " ..." ;

    ou version pour les x premiers mots :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $le_texte = html_entity_decode($le_texte);
     
    $Touslesmots = str_word_count($le_texte, 1);
     
    $texte_final = "";
    if(count($Touslesmots) > 15){ // 15 premiers mots
    for($i = 0; $i <= 15; $i++){
    $texte_final .= $Touslesmots[$i] . " " ;}
    }

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

Discussions similaires

  1. Afficher contenu de $_GET dans page HTML
    Par donnadieujulien dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2009, 01h48
  2. Comment afficher des caractères hébreux dans filezilla ?
    Par JerryOne3 dans le forum Internet
    Réponses: 4
    Dernier message: 15/12/2008, 22h57
  3. Détection caractères spéciaux dans chaine
    Par masteronboard dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 08/07/2008, 16h00
  4. Réponses: 7
    Dernier message: 10/01/2007, 17h12
  5. recherche de caractères non_lettres dans chaine
    Par niconoe dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/09/2005, 08h54

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