|
|
|
| PHP начал изучать недавно и сразу столкнулся с такой проблемой:
Есть textarea, сообщение из него выводится в таблицу в одну строку.
Как сделать так, чтобы при выводе, сообщение разбивалось на строки по длине ячейки, не растягивая таблицу? | |
|
|
|
|
|
|
|
для: beowulf
(12.05.2005 в 10:43)
| | Вообще тут можно решать 2 разные задачи.
1. Выводить текст в формате, в котором он был записан в textarea (переводы строк)
2. Форматирование в textarea значения не имеет. Текст должен убраться в ячейку таблицу.
Если второе, то известна ли длина ячейки?
PS: А HTML-версткой (без PHP) задача разве не решается? | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(12.05.2005 в 12:03)
| | С переводом строк в textarea вроде все ясно - использовал функцию str_replace() - заменил "\n" на "<br>"
А вот если в textarea загонять текст сплошняком, выводит одной строкой
вот код
<tr>
<td height=100 >
<p><font color=#FF0000 size="2"><b>Автор:</b></font>
<? echo "<a href='mailto:".$mess[1]."'>".$mess[0]."</a>";
echo "<br>";
echo "<font size=1>$mess[2]</font>"; ?>
</td>
<td valign=top width="400">
<?
$mes = str_replace("\n", "<br>", $mess[3]);
echo $mes;
?></td>
</tr> | |
|
|
|
|
|
|
|
для: beowulf
(12.05.2005 в 13:32)
| | Есть способ проще:
<?
$text = nl2br($text);
print $text;
?>
|
| |
|
|
|
|
|
|
|
для: Loki
(12.05.2005 в 14:19)
| | Да с переводом строк в textarea все ясно.
Все равно спасибо.
А вот как быть со сплошным текстом, который выводится в одну строку и растягивает всю таблицу?
Здесь надо использовать substr ? | |
|
|
|
|
|
|
|
для: beowulf
(12.05.2005 в 15:12)
| | Если вы знаете такие длинные слова, то не знаю:) Если же нет, то, возможно, имеет смысл проверять это при вводе. Подобный механизм втроен в гостевую книгу в разделе Downloads.
Ну или форматированием страницы задавать ее ширину. | |
|
|
|
|
|
|
|
для: beowulf
(12.05.2005 в 15:12)
| | > А вот как быть со сплошным текстом, который выводится в одну строку и растягивает всю таблицу?
Так там одна сплошная строка без пробелов? Если пробелы есть, то проблем быть не должно (у вас же стоит ширина ячейки width=400).
Если стоит проблема в разбиение строки без пробелов, то:
Вот такой код вытащил из гостевой книги. Здесь осуществляется проверка на ввод посетителем слишком длинных слов без пробелов.
<?
$lenmsg = strlen($_POST["msg"]);
$templen = 0;
$temp = strtok($_POST["msg"], " ");
if (strlen($_POST["msg"])>60) {
while ($templen < $lenmsg) {
if (strlen($temp)>60) {
$action = "";
$error = $error."<LI>Текст сообщения содержит слишком много символов без пробелов\n";
break;
} else {
$templen = $templen + strlen($temp) + 1;
}
$temp = strtok(" ");
}
}
?>
|
Или вот так
<?
$msg = wordwrap($msg, 25, ' ',1);
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(13.05.2005 в 05:43)
| | Спасибо ! Я это и имел в виду - ограничение на количество символов в слове/строке без пробелов.
Теперь все получилось | |
|
|
|