Version complète: sur le forum Webmaster Hub : Réduire une chaîne ?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Troll
Salut à tous et à toutes =)

Voilà ma question, qui bien que j'aie titillé google...reste mystérieuse... :

J'ai une chaîne de données, disons $texte, qui j'ai récupéré dans ma base de données ; et je voudrais n'en afficher que les 300 premiers caractères par exemple (le chiffre n'a pas d'importance smile.gif ).

J'ai beau avoir cherché j'ai pas trouvé, ou pas compris en tout cas, donc je m'en remets à votre savoir en la matière =)

Merci d'avance à tous/toutes ceux/celles qui répondront =D
Jeanluc
Bonjour,

substr devrait faire l'affaire.

Jean-Luc
xpatval
CITATION(Jeanluc @ vendredi 15 décembre 2006, 22h57) *
Bonjour,

substr devrait faire l'affaire.

Jean-Luc


Sauf si tu souhaites un affichage particulier. S'arrêter au bout de 300, quitte à scinder un mot ? s'arrêter à 300, mais après le dernier espace entre deux mots...?

xpatval
Troll
CITATION(xpatval @ samedi 16 décembre 2006, 00h55) *
Sauf si tu souhaites un affichage particulier. S'arrêter au bout de 300, quitte à scinder un mot ? s'arrêter à 300, mais après le dernier espace entre deux mots...?

xpatval

Oui, ce serait plutôt dans ce genre =)

(ps : est-ce normal que, malgré le fait que j'ai coché la notification par mail pour les réponses je ne recoive rien ?? :S )

Merci à vous deux =)
Dan
Tu ne reçois pas de notification si tu es en ligne au moment de la réponse whistling.gif

Et pour couper une chaine à une longueur fixe, en s'assurant de couper sur un espace, il faut combiner substr avec strrev et strpos, comme par exemple :
CODE
function shorten($text,$maxTextLenght) {
        if(strlen($text) > $maxTextLenght ) {
            $text = substr(trim($text),0,$maxTextLenght);
            $text = substr($text,0,strlen($text)-strpos(strrev($text)," "));
        }
        $text = ereg_replace("\r\n"," ",$text);
        return $text." ...";
    }


Tu peux utiliser cette fonction comme ceci:
$text=shorten($text,200);
si tu veux couper à 200 caractères (en fait sur le premier espace précédant cette limite)
Troll
Merci !!
Désolé pour le temps de réponse...semaine chargée :s

En tout cas c'est parfait =) Ca marche a merveille, merci bien wink.gif

Bonne continuation à l'équipe ! A bientôt peut-être wink.gif
Troll
Bonsoir à tous smile.gif

Je reviens sur le bout de code que Dan m'avait donné pour une raison particulière :

En effet, ce code s'appliquant à une chaîne pouvant contenir du html, si une balise, pas exemple de couleur et que le 200ème(ou 1500ème, suivant le nombre défini, se trouve entre l'ouverture et la fermeture de la balise, elle n'est jamais fermée, vu que le texte est coupé, donc tout ce qui suit dans la page subit l'influence de la balise...

Ex :

<span style="color:orange"> blablabla_caractère_de_section_ici </span>

<- le caractère se situant avant le </span>, la balise n'est jamais fermée, et tout ce qui suit est en orange...


Comment faire ? wacko.gif

Merci d'avance smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.