Il y a beaucoup de fonctions et Méthodes sur le type de données chaîne (Chaîne) dans PHP. Normalement, Quand on veut raccourcir o ajuster une chaîne d’un nombre donné de caractères, Nous utilisons la fonction substr de la manière suivante:
1 | $nuevaCadena = substr ( $cadena, 0, $longitud ) |
où la variable $longueur aura la valeur de la taille de la chaîne, ce qui entraîne que nous voulons obtenir.
Imaginez maintenant que vous voulez effectuer l’ajustement ou le découpage d’une chaîne de texte qui vont utiliser dans une page Web comme Intro de le quelconque Nouvelles, Article o similaires. Si nous utilisons la fonction directement substr sur la chaîne pour régler, Cette fonction pas va faire distinction entre les lettres, des propos et/ou des espaces vides, Si le résultat peut être une chaîne où le dernier mot est Coupe.
Nous allons voir que nous pouvons résoudre ce problème, Cela, Etant donné une chaîne et une longueur, Il s’agit réglage à cette taille, tenant compte du fait que ne doit pas couper les mots. Pour ce faire, Jetez un oeil à la fonction suivante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php function trimString ( $cadena, $longitud = 128 ) { //Eliminamos las etiquetas HTML $cadena = trim ( strip_tags ( $cadena ) ); if ( strlen ( $cadena ) > $longitud ) { //Acortamos la cadena a la longitud dada $cadena = substr ( $cadena, 0, $longitud + 1 ); //Expresión regular de espacio en blanco $regExp = "/[\s]| /"; //Dividimos la cadena en palabras y la guardamos en un array $palabras = preg_split ( $regExp, $cadena, -1, PREG_SPLIT_NO_EMPTY ); //Buscamos la expresión regular al final de la cadena preg_match ( $regExp, $cadena, $ultimo, 0, $longitud ); if ( empty ( $ultimo ) ) { //Si la última palabra no estaba seguida por un espacio en blanco, //la eliminamos del conjunto de palabras array_pop ( $palabras ); } //Creamos la cadena resultante por la unión del conjunto de palabras $cadena = implode ( ' ', $palabras ) . '…'; } return $cadena; } |
Cette fonction prend comme paramètres un chaîne et le longueur vous le souhaitez.
- Tout d'abord, élimine les de la chaîne des balise HTML Vous pouvez avoir.
- Puis, crée une chaîne avec la longueur de la taille donnée.
- Puis, fractionne la chaîne en mots, création d’un Tableau conteneur d’eux, et voir si à la fin de la chaîne il y a un vide. Si ce n’est, élimine les la dernière entrée du tableau, en évitant Ainsi le couper les mots.
- Enfin, crée une chaîne avec les mots du tableau et le Retourne.
Nous allons voir un exemple de. Si la chaîne suivante de caractères et appliquez la fonction ci-dessus sur le même:
1 2 3 4 5 6 7 8 9 10 | <?php $cadena = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor '. 'incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis '. 'nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. '. 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore '. 'eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, '. 'sunt in culpa qui officia deserunt mollit anim id est laborum.'; echo trimString($cadena, 75); |
le résultat suivants doivent être respectés:
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod… |
Si, au lieu d’utiliser cette fonction, Nous avons utilisé la fonction substr, le résultat aurait été différent:
1 | echo substr($cadena, 0, 75).'…'; |
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem… |
laissant dernier mot chaîne la moitié.
Comme vous pouvez le voir, ce dernier résultat ne serait pas très bien, comme intro, sur une page web, Puisque nous sommes mots coupe. Il s’avère plus adapté le résultat Récupérée à l’appel à la fonction trimString, qui a évité la possible coupe éliminant ces mots qui sont laissés à moitié.
« Une pensée sur »Comment ajuster ou découper une chaîne à une certaine longueur en PHP”
Merci, utilisez-le pour corriger une erreur lors de la création de xml.