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 :
et dans ma page j'ai donc ceci :
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; }
là ça fonctionne.. le soucis et quand je veux afficher la suite.cleanCut($row->description, 100)
la logique voudrait que je mette :
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)substr(nl2br($row->description), 101)
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 :
puis pour afficher la deuxieme partie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $string1 = str_replace ( "\n \\'", "", cleanCut($row->description, 100))
bin ca marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part substr(nl2br($row->description), $string)j'ai toujours des résultats bizarres...
Si ce n'est pas claire, dites moi...
Merci d'avance à tous et bonne soirée![]()
Partager