Aller au contenu

Réduire une chaîne ?


Troll

Sujets conseillés

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 :) ).

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 =)

Lien vers le commentaire
Partager sur d’autres sites

Tu ne reçois pas de notification si tu es en ligne au moment de la réponse :whistling:

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 :

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)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Bonsoir à tous :)

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:

Merci d'avance :)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...