Page 1 sur 1

Afficher les x premiers caracteres ?

Posté : 23 juin 2008, 14:10
par fabrice88250
bonjour,
je suis en train de mettre sur mon site internet un petit systeme de news.
j'enregistre mes news dans ma BDD titre, news, et date.

Concernant l'affichage des données je n'ai pas de pb c'est ok.

j'aimerai juste donnée un aperçu de la news sur ma page d'accueil et pour ça, je ferai affiché le titre et les xxx premiers caracteres de la news.

ma question est donc comment je peus faire pour ne faire afficher que les xxx premier caractaire de la news ?

Posté : 23 juin 2008, 14:17
par sadeq
La fonction substr() est ton amie.

Par exemple:
$ma_chaine = "Substr(chaine, x, y) retourne le texte composé de y caractère à partir de la position x";
echo substr($ma_chaine, 0, 6); //affiche les 6 caractères à partir de la position 0 (début)
//Ce qui affiche : "Substr"

Posté : 23 juin 2008, 14:21
par mcorgnet
Ca sera plus rapide en SQL, avec un LEFT()

Posté : 23 juin 2008, 15:16
par caroube
Attention aux coupures à x caractères, parce que ça peut tomber au milieu d'un mot et donner des résultats bizarres : "Le président est un contribuable comme les autres" tronqué après le 23e caractère donnera un résultat avec un sens légèrement différent (je vous laisse découvrir).
Pour ma part, pour les news, j'utilise cette fonction pompée dans Smarty
function truncate($string, $length = 80, $etc = '...', $break_words = false) {
	if ($length == 0) return '';
	if (strlen($string) > $length) {
		$length -= strlen($etc);
		if (!$break_words) $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
		return substr($string, 0, $length).$etc;
	} else return $string;
}
Avec le paramètre break_word à faux, elle coupe la phrase au premier espace après le Xième caractère et en plus rajoute trois points pour montrer que la phrase est tronquée.