Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с переводом строки
 
 автор: beowulf   (12.05.2005 в 10:43)   письмо автору
 
 

PHP начал изучать недавно и сразу столкнулся с такой проблемой:

Есть textarea, сообщение из него выводится в таблицу в одну строку.

Как сделать так, чтобы при выводе, сообщение разбивалось на строки по длине ячейки, не растягивая таблицу?

   
 
 автор: glsv (Дизайнер)   (12.05.2005 в 12:03)   письмо автору
 
   для: beowulf   (12.05.2005 в 10:43)
 

Вообще тут можно решать 2 разные задачи.
1. Выводить текст в формате, в котором он был записан в textarea (переводы строк)
2. Форматирование в textarea значения не имеет. Текст должен убраться в ячейку таблицу.
Если второе, то известна ли длина ячейки?

PS: А HTML-версткой (без PHP) задача разве не решается?

   
 
 автор: beowulf   (12.05.2005 в 13:32)   письмо автору
 
   для: 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>

   
 
 автор: Loki   (12.05.2005 в 14:19)   письмо автору
 
   для: beowulf   (12.05.2005 в 13:32)
 

Есть способ проще:

<?
$text 
nl2br($text);
print 
$text;
?>

   
 
 автор: beowulf   (12.05.2005 в 15:12)   письмо автору
 
   для: Loki   (12.05.2005 в 14:19)
 

Да с переводом строк в textarea все ясно.

Все равно спасибо.

А вот как быть со сплошным текстом, который выводится в одну строку и растягивает всю таблицу?

Здесь надо использовать substr ?

   
 
 автор: Loki   (12.05.2005 в 16:00)   письмо автору
 
   для: beowulf   (12.05.2005 в 15:12)
 

Если вы знаете такие длинные слова, то не знаю:) Если же нет, то, возможно, имеет смысл проверять это при вводе. Подобный механизм втроен в гостевую книгу в разделе Downloads.
Ну или форматированием страницы задавать ее ширину.

   
 
 автор: glsv (Дизайнер)   (13.05.2005 в 05:43)   письмо автору
 
   для: 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($msg25' ',1);
?>

   
 
 автор: beowulf   (13.05.2005 в 10:07)   письмо автору
 
   для: glsv (Дизайнер)   (13.05.2005 в 05:43)
 

Спасибо ! Я это и имел в виду - ограничение на количество символов в слове/строке без пробелов.

Теперь все получилось

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования