Há uma abundância de funções e métodos de no tipo de dados Cadeia de (Sequência de caracteres) em PHP. Normalmente, Quando queremos encurtar o ajustar uma sequência de caracteres para um determinado número de caracteres, Nós usamos a função substr da seguinte maneira:
1 | $nuevaCadena = substr ( $cadena, 0, $longitud ) |
onde a variável $comprimento terá o valor do tamanho da sequência de caracteres resultante que queremos ir.
Imagine agora que querem realizar o ajuste ou o recorte de uma sequência de caracteres de texto que vai usar em um página da Web como Intro qualquer Notícias, Artigo o semelhantes. Se nós usamos diretamente a função substr para ajustar a corrente, Esta função Não vai fazer distinção entre letras, palavras e/ou espaços em branco, Portanto, o resultado pode ser uma sequência de caracteres onde é a última palavra corte.
Vamos ver como podemos resolver isso, fazendo isso, dada uma sequência de caracteres e um comprimento, Isto é ajuste em que o tamanho, levando em conta que Não deve cortar palavras. Para fazer isso, definir-se em função de seguir:
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 função tem como parâmetros um Cadeia de e o comprimento desejado.
- Em primeiro lugar, elimina a da cadeia de caracteres qualquer tag HTML Isso pode ter.
- Em seguida, Cria uma sequência de caracteres com o comprimento do tamanho dado.
- Em seguida, separar a sequência de caracteres em palavras, criação de um matriz recipiente deles, e ver se no final da cadeia há um espaço em branco. Em caso negativo, elimina a a última entrada na matriz, evitando Assim, o corte de palavras.
- Finalmente, Cria uma sequência de caracteres com as palavras da matriz e o Retorna.
Vamos ver um exemplo de. Se nós temos a seguinte sequência e aplicar a função anterior nele:
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); |
o resultado serão os seguintes:
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod… |
Se em vez de usar essa função, Usamos a função substr, o resultado teria sido diferente:
1 | echo substr($cadena, 0, 75).'…'; |
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem… |
deixando-a última palavra Cadeia de metade.
Como você pode ver, o último resultado Não seria muito bem, como intro, em uma página da web, Uma vez que são palavras de corte. Resultados mais adequado o resultado obtido chamando a função trimString, que tem evitado os cortes possíveis, eliminando as palavras que restam metade.
"Um pensamento sobre"Como ajustar ou cortar uma sequência de caracteres de texto para um determinado comprimento em PHP”
Obrigado, lo use para corregir un error al crear unos xml.