Ci sono un sacco di funzioni e Metodi il tipo di dati catena (Stringa) in PHP. Normalmente, Quando vogliamo abbreviare o regolare una stringa da un determinato numero di caratteri, utilizzare la funzione substr nel modo seguente:
1 | $nuevaCadena = substr ( $cadena, 0, $longitud ) |
dove la variabile $lunghezza Avrà il valore della dimensione della stringa risultante che vogliamo raggiungere.
Immaginate ora che vogliamo fare la regolazione o tagliare una stringa che verrà utilizzata in un pagina Web come Intro di qualsiasi Notizie, Articolo o simili. Se usiamo la funzione direttamente substr nella stringa di regolare, Questa funzione non lo farai distinzione tra le lettere, Parole e/o spazi vuoti, da quello che il risultato può essere una stringa in cui è l'ultima parola taglio.
Stiamo andando a vedere come possiamo risolvere questo, che fa., una stringa e di una lunghezza, Questo è regolazione in quel formato, tenendo conto che non dovrebbe tagliare le parole. Per fare questo, impostare manualmente la seguente funzione:
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; } |
Questa funzione accetta come parametri un catena E la lunghezza desiderato.
- Innanzitutto, Elimina della stringa qualsiasi Tag HTML Si può avere.
- Quindi, Crea una stringa con la lunghezza della dimensione specificata.
- Quindi, divide la stringa in parole, creazione di un matrice contenitore di loro, e vedere se alla fine della catena c'è un in bianco. Se non, Elimina L'ultima voce nella matrice, evitando Così il tagliare le parole.
- Infine, Crea una stringa con le parole dalla matrice e la Restituisce.
Ci accingiamo a vedere un esempio. Se abbiamo la seguente stringa e applicare la funzione precedente su di esso:
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); |
il risultato sarà il seguente:
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod… |
Se invece di utilizzare questa funzione, Abbiamo usato la funzione substr, il risultato sarebbe stato diverso:
1 | echo substr($cadena, 0, 75).'…'; |
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem… |
lasciando la ultima parola della catena la metà.
Come si può vedere, il risultato di quest'ultimo non sarebbe andato molto bene, come un lead-in, in una pagina web, Dato che ci sono parole di taglio. Si scopre più adatto il risultato è estratto per la chiamata alla funzione AnnullaSpazi, che ha evitato i possibili tagli eliminando quelle parole che vengono lasciati a metà.
"Un pensiero su"Come regolare o tagliare una stringa a una determinata lunghezza in PHP”
Grazie, utilizzarlo per correggere un errore durante la creazione di un xml.