Bonjour à tous, je vais essayer d'être clair pour mon soucis méga chi@^$!

j'ai une base de données dans laquelle se trouve un champs "description".
Cependant, sur ma page, je voudrais afficher les 100 premiers caractères de Description, puis quelques lignes en dessous, la fin de description.

ainsi, si dans ma BDD, description vaut 189, je veux afficher les 100 premier, puis dans un second temps les 89 derniers.
Jusque ici tous va bien

pour afficher les 100 premiers (et sans coupé en mot, et en finissant par "..."), j'utilise cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
function cleanCut($string,$length,$cutString = '...')
{
	if(strlen($string) <= $length)
	{
		return $string;
	}
	$str = substr($string,0,$length-strlen($cutString)+1);
	return substr($str,0,strrpos($str,' ')).$cutString;
}
et dans ma page j'ai donc ceci :
cleanCut($row->description, 100)
là ça fonctionne.. le soucis et quand je veux afficher la suite.
la logique voudrait que je mette :
substr(nl2br($row->description), 101)
c'est là que ca coince... je me retrouve de temps en temps (selon la ligne de la BDD) avec des caractères en trop (c'est a dire une répétition de la 1ere partie) ou alors des caractères en moins... (c'est a dire que il manque des caractère entre la premiere et deuxieme parti)

PISTE : j'ai l'impression que c'est mon substr qui pose problème et qui ne me compte que les caractères et pas les sauts de ligne dans la BDD.

j'ai testé du coup cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$string1 = str_replace ( "\n \\'", "", cleanCut($row->description, 100))
puis pour afficher la deuxieme partie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
substr(nl2br($row->description), $string)
bin ca marche pas j'ai toujours des résultats bizarres...

Si ce n'est pas claire, dites moi...

Merci d'avance à tous et bonne soirée