Aller au contenu

Réduire une chaîne ?


Sujets conseillés

Posté

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

Posté
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

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

Posté

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)

Posté

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

Bonne continuation à l'équipe ! A bientôt peut-être ;)

  • 2 months later...
Posté

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

Veuillez vous connecter pour commenter

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



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