PHP

Формирование текста с использованием функции PHP wordwrap()

Иногда нужно, чтобы скрипт PHP формировал длинную строку в несколько коротких, сохраняя при этом целостность слов. Такая необходимость может возникнуть при форматировании некоего текста для печати или для email, или когда нужно вывести предварительно отформатированный текст на веб странице с помощью элемента pre.

PHP имеет практичную функцию wordwrap() для решения таких задач. В данном уроке рассматривается работа с функцией wordwrap().
Основной синтаксис wordwrap()

В большинстве случаев нужно просто передать строку в функцию wordwrap(), и она вернёт сформированный текст:
 	$myString = "Mr. Bennet was so odd a mixture of quick parts, sarcastic humour, reserve, and caprice, that the experience of three-and-twenty years had been insufficient to make his wife understand his character.";
 	echo "<pre>" . wordwrap( $myString ) . "</pre>";

Выше приведённый код выводит:
 	Mr. Bennet was so odd a mixture of quick parts, sarcastic humour, reserve,
 	and caprice, that the experience of three-and-twenty years had been
	insufficient to make his wife understand his character.

По умолчанию функция wordwrap() использует ширину колонки в 75 символов. Это означает, что строка будет не длиннее 75 символов.
Задаём ширину колонки

Чтобы задать ширину колонки отличной от 75 символов, нужно передать значение ширины в качестве второго аргумента фунгкции wordwrap():
 	$myString = "Mr. Bennet was so odd a mixture of quick parts, sarcastic humour, reserve, and caprice, that the experience of three-and-twenty years had been insufficient to make his wife understand his character.";
 	echo "<pre>" . wordwrap( $myString, 40 ) . "</pre>";
 	Mr. Bennet was so odd a mixture of quick
 	parts, sarcastic humour, reserve, and
 	caprice, that the experience of
 	three-and-twenty years had been
 	insufficient to make his wife understand
 	his character.

Используем другой символ переноса строки

Обычно функция wordwrap() выполняет перенос строки с помощью вставки символа новой строки ("\n") там, где нужно. Однако, вы можете установить тот символ, который нужно использовать. Для этого новый символ переноса строки передаётся в качестве третьего аргумента функции wordwrap().

Например, если текст формируется для использования на веб странице и элемент pre не будет использоваться для отображения предварительно форматированного текста, то можно осуществлять перенос строки с помощью элемента HTML<br />:
 	$myString = "Mr. Bennet was so odd a mixture of quick parts, sarcastic humour, reserve, and caprice, that the experience of three-and-twenty years had been insufficient to make his wife understand his character.";
 	echo wordwrap( $myString, 40, "<br />" );

Формирование очень длинных слов

Что произойдёт, если текст будет содержать слово, длина которого превышает ширину колонки? По умолчанию строка будет иметь длину больше ширины колонки:
myString = "This text contains a very very loooooooooooooooooooong word.";
echo "<pre>" . wordwrap( $myString, 10 ) . "</pre>";

 	This text
 	contains a
 	very very
 	loooooooooooooooooooong
 	word.

Чтобы изменить стиль работы с длинными словами нужно передать четвёртым аргументом значение true в функцию wordwrap(). В этом случае все слова, длина которых будет превышать ширину колонки будут прерываться символом переноса строки, а остаток слова будет продолжаться на следующей строчке:
 	myString = "This text contains a very very loooooooooooooooooooong word.";
 	echo "<pre>" . wordwrap( $myString, 10, "\n", true ) . "</pre>";

 	This text
 	contains a
 	very very
 	looooooooo
 	oooooooooo
 	ong word.

Использование функции wordwrap() помогает формировать текст так, что его отображение имеет прогнозируемый вид, без сюрпризов.
Добавлено: 22 Августа 2013 11:31:38 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...