RACCOURCIR UNE CHAINE AVEC UN SÉPARATEUR AU MILIEU

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 25 oct. 2005 à 23:19
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009 - 26 oct. 2005 à 09:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34345-raccourcir-une-chaine-avec-un-separateur-au-milieu

cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
26 oct. 2005 à 09:37
perso, je ferai ca par une expression regulière :

shortenString($string, $max,$rempl){
$len = strlen($string);
if ( $len > $max ){
return preg_replace('#(.{15})(.*)(.{10})#','$1'.$rempl.'$2',$str);
}
}

a tester, perso je trouve ca plus simple et plus propre
ttestt123123 Messages postés 3 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
26 oct. 2005 à 08:34
Euhhh, tu te prends pas un peu la tête pour rien là ?
Ca serait pas plus simple de tester si la chaine n'est pas déjà aussi longue que max, et sinon :

1- déterminer le nombre de caractères à droite/gauche (nb)
2- chaine de retour = substr du début (nb) + séparateur + substr de fin (nb)

avec séparateur en dur, ne connaissant eprsonnellement pas d'autre caractère connu pour signifier "etc" dans une phrase, à part peut-être "[...]"

Ton code est beaucoup trop long pour si peu
cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 1
25 oct. 2005 à 23:32
sympa ;) j'aime bien ces petits bouts de code bien utiles ;) 7/10
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
25 oct. 2005 à 23:19
Pas mal du tout :)