Υπάρχουν πολλά λειτουργίες και μέθοδοι sobre el tipo de datos αλυσίδα (Συμβολοσειρά) σε PHP. Κανονικά, cuando queremos acortar o ajustar una cadena a un determinado número de caracteres, usamos la función substr με τον ακόλουθο τρόπο:
1 | $nuevaCadena = substr ( $cadena, 0, $longitud ) |
donde la variable $μήκος tendrá el valor del tamaño de cadena resultante que queremos conseguir.
Imagina ahora que queremos realizar el ajuste o recorte de una cadena de texto que vamos a usar en una ιστοσελίδα ως entradilla οποιαδήποτε noticia, Άρθρο o παρόμοια. Si usamos directamente la función substr sobre la cadena a ajustar, esta función δεν va a hacer διάκριση entre letras, λέξεις ή/και χώρους σε λευκό χρώμα, por lo que el resultado puede ser una cadena donde la última palabra esté κομμένα.
Ας δούμε πώς μπορούμε να λύσουμε αυτό, το κάνουμε αυτό, dada una cadena y una longitud, ésta se ajuste a dicho tamaño, teniendo en cuenta que no debe cortar palabras. Για να γίνει αυτό, Ρίξτε μια ματιά στο την ακόλουθη συνάρτηση:
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; } |
Esta función toma como παράμετροι ένα αλυσίδα και το μήκος επιθυμητό.
- Πρώτα απ' όλα, εξαλείφει de dicha cadena cualquier ετικέτα HTML que pueda tener.
- Στη συνέχεια, crea una cadena con la longitud del tamaño dado.
- Στη συνέχεια, διαιρεί τη συμβολοσειρά σε λέξεις, creando un συστοιχία contenedor de ellas, y mira si al final de la cadena existe un espacio en blanco. Σε περίπτωση αρνητικής, εξαλείφει la última entrada del array, αποφυγή Έτσι το Κόψτε τα λόγια.
- Τέλος, δημιουργεί μια συμβολοσειρά με τις λέξεις από τη σειρά και την Επιστροφές.
Θα δούμε μια παράδειγμα. Αν έχουν την ακόλουθη αλυσίδα των χαρακτήρων και να εφαρμόσει τη λειτουργία πάνω από την ίδια:
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); |
το αποτέλεσμα θα είναι τα εξής:
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod… |
Αν αντί να χρησιμοποιήσετε αυτή τη λειτουργία, Χρησιμοποιήσαμε τη συνάρτηση substr, το αποτέλεσμα θα ήταν διαφορετική:
1 | echo substr($cadena, 0, 75).'…'; |
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem… |
αφήνοντας το τελευταία λέξη αλυσίδα μισό.
Όπως μπορείτε να δείτε, Αυτό το τελευταίο αποτέλεσμα δεν θα ήταν πολύ καλό, ως εισαγωγή, σε μια σελίδα web, Δεδομένου ότι είμαστε κοπής λέξεις. Αποτελέσματα πιο κατάλληλο το αποτέλεσμα που ανακτάται με την κλήση της συνάρτησης το αποτέλεσμα που ανακτάται με την κλήση της συνάρτησης, la cual ha evitado los posibles cortes eliminando aquellas palabras que se quedan a medias.
«Μία σκέψη για»Πώς να ρυθμίσετε ή να τακτοποιήσει μια συμβολοσειρά κειμένου σε ένα ορισμένο μήκος σε PHP”
Ευχαριστούμε, lo use para corregir un error al crear unos xml.