Есть много функции и методы на тип данных цепь (Строка) в PHP. Обычно, Когда мы хотим укоротить o Отрегулируйте Строка для заданного числа символов, Использование функции substr следующим образом:
1 | $nuevaCadena = substr ( $cadena, 0, $longitud ) |
где переменная $Длина Она будет иметь значение размер результирующей строки, которую мы хотим достичь.
Теперь представьте, что мы хотим сделать регулировку или обрезки строку, которую мы будем использовать в веб-страница как Интро любой Новости, Статьи o аналогичные. Если мы используем функцию substr для настройки цепи, Эта функция не буду делать различия между буквами, слова и/или пробелы в белом, Таким образом, результат может быть строка, где Последнее слово вырезать.
Мы будем видеть, как мы можем решить эту, что делать, Получив строку и длину, Это Регулировка При этом размер, принимая во внимание, что не следует вырезать слова. Для этого, Задайте себе в следующей функции:
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; } |
Эта функция принимает в качестве параметры a цепь и Длина желаемый.
- Прежде всего, устраняет Это строка любой тег HTML Вы можете иметь.
- Затем, Он создает строку с длиной заданного размера.
- Затем, разделение строки на слова, Создание массив контейнер из них, и посмотреть, если в конце цепи есть пустой. В случае негативного, устраняет Последняя запись массива, во избежание Таким образом вырезать слова.
- И наконец, создает строку со словами массива и Возвращает.
Мы собираемся увидеть Пример. Если у нас есть следующая строка и применить функции на него:
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… |
оставляя Последнее слово цепочки половина.
Как вы можете видеть, Этот последний результат не будет очень хорошо, как ввод, на веб-странице, Так как мы резки слова. Оказывается более подходящий результат, извлеченные для вызова функции trimString, что удалось избежать возможных сокращений, устраняя те слова, которые оставляют половину.
«Одна мысль о»Как настроить или обрезать строку до определенной длины в PHP”
Спасибо, Используйте его для исправления ошибки при создании XML.