Сайтостроительство (8)

PHP-кодинг (25)

Веб-дизайн (9)

DHTML/JavaScript (8)

Подкастинг (1)

Безопасность в PHP (3)

Секретный раздел

Карта блога

Регистрация пользователей на PHP+MySQL

Скрипт гостевой книги с красивым дизайном

Галерея на jQuery

Простая система регистрации пользователей на сессиях

Галерея на php+jquery

Форма обратной связи с защитой типа капча

Шаблоны запросов и placeholders

Быстрое перенаправление средствами php

Flash плеер для вашего сайта

Сортировка столбцов в таблице на php+mysql

Передача переменных из JavaScript в РНР

История развития Всемирной паутины

Галерея на jQuery

Постраничный вывод большой статьи

РНР и CSS: динамическое оформление меню

За весь период

За 2010-11

За 2009-06

За 2009-05

За 2009-04

За 2009-03

За 2009-02

За 2008-08

Бегун контекстная реклама

Ruseller видеоуроки

Letitbit файлообменник

Tak.Ru $$$ вебмастеру

WMmail почтовые рассылки

WMlink продажа трафика

Sape.Ru продажа ссылок

Главная » PHP-кодинг

Перенос длинных строк в комментариях

Функция wordwrap выполняет перенос строки на данное количество символов с использованием символа разрыва строки. Её синтаксис следующий:

string wordwrap ( string $str [, int $width [, string $break [, boolean $cut ]]] )

Функция возвращает строку str с переносом в столбце с номером, заданном аргументом width. Строка разбивется с помощью аргумента break. Аргументы width и break необязательны и по умолчанию равны 75 и '\n' соответственно. Если аргумент cut установлен в 1, разрыв делается точно в заданной колонке. Поэтому если исходная строка содержит слово длиннее, чем заданная длина, то в этом случае слово будет разорвано. (см.пример ниже).


<?
$text = "Очень длинное слоооооооооооооооово.";
$newtext = wordwrap($text, 8, "\n", 1);
echo "$newtext\n";
?>

Этот пример выведет:

Очень
длинное
слоооооо
оооооооо
оово.

Теперь как это применить в наших в комментариях на блоге? Просто!

Приведу для пущей наглядности кусок кода в файле обработчика комментариев


// задаем длину
$max_word = 40;
if ($sub_com1)
{
	if (isset($text)) {trim($text);}
	else {$text = "";}
	if (empty($text))
	{
		exit ("Вы не ввели текст комментария!");
	}
            // разрываем длинную строку
	$text = wordwrap($text, $max_word, "\n", 1);
	$date = date("Y-m-d");
	$time = date("h:i:s");
	$result2 = mysql_query ("INSERT INTO comments(post,author,text,date,time) VALUES ('$id','$_SESSION[username]','$text','$date','$time')",$db);
	echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php?cat=$cat&id=$id'></head></html>";
	exit();
}

То же самое проделайте для обработчика незарегистрированного пользователя (для тех кто читал и делал прошлые уроки поймёт).

Также можно ограничить длину выводимого имени пользователя, если спамеры вдруг вам испортили дизайн сайта. В данном случае нужно проверить длину имени. Если превышает, то вывести соответствующее предупреждение.


//ограничем имя $author 15-символами
$max_w=15;
	if(strlen($author)>$max_w)
	{
		exit ("Вы ввели слишком длинное имя!>");
	}

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

Применяйте! Если есть вопросы, задавайте их в комментариях. За одно можно проверить их вывод здесь.

Комментировать

Автор: admin | Добавлена: 22.04.2009 | Просмотров: 8221
Рейтинг: 8 | Голосов: 2

Оцените заметку: 1 2 3 4 5

Последние обновления в категории: PHP-кодинг

Комментарии (0)

Комментариев пока нет!

Только авторизованные пользователи могут добавлять комментарии. Зарегистрироваться.

Логин:
Пароль:
 

Регистрация

: Тема:

Заметок в базе: 56
Комментариев: 0
Всего юзеров: 114
Сейчас онлайн: 1