|
|
|
| У меня такая ситуация: один скрипт создает файл и записывает в него введенные пользователем через форму данные. Запись идет по строкам. Другой скрипт берет созданный файл в виде массива через file() и считывает по строке на каждую переменную (trim). И текст юзера через echo выводится в таблицу. Но если строка очень длинная, то этот текст не переносится, а продолжается в ширину. Что делать? | |
|
|
|
|
|
|
|
для: Keks
(19.12.2006 в 21:26)
| | Можно принудительно разбивать длинные слова, например, при помощи решения, представленного в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=4580. | |
|
|
|
|
|
|
|
для: cheops
(19.12.2006 в 22:48)
| | Проблема вот в чем. Я читаю в переменную строку файла:
<?
$file = file("text.php");
$title = trim($file[0]);
$text = trim($file[1]);
$date = trim($file[2]);
echo("
<table width=80% height=80% cellpadding="0"><tr><td><br>
$title<br>$text<br>$date</td></tr></table>
");
?>
|
Вот, и когда текст из переменой $text больше ширины таблицы,то почему то он не переносится,а таблица растягивается | |
|
|
|
|
|
|
|
для: Keks
(19.12.2006 в 23:01)
| | Прикрепите пожалуйста файл text.php к сообщению с таким текстом (нужен именно ваш файл, который растягивает текст) и сообщите каким браузером просматриваете страницу? | |
|
|
|
|
|
|
|
для: cheops
(20.12.2006 в 02:10)
| | В файле text.php нету никакого php кода, он нужен для хранения пользовательских данных. И если этот файл не читать по строке, а вставить инклудом, то все нормально. | |
|
|
|
|
|
|
|
для: Keks
(20.12.2006 в 07:17)
| | Настрой таблицу. В стиль table поставь table-layout:fixed; или в td поставь overflow:hidden. | |
|
|
|
|
|
|
|
для: Keks
(20.12.2006 в 07:17)
| | Он нужен, чтобы воспроизвести ситуацию. | |
|
|
|
|
|
|
|
для: cheops
(20.12.2006 в 12:50)
| | прикрепил файл с этим кодом, который писал раннее. а вот и ситуация в целом:
<?
//файл news.php, в котором происходит чтение новости
//его отрывок
$dirct="settings/news";
$hdl=opendir($dirct);
while ($file = readdir($hdl))
if ( ($file!=".")&&($file!="..")) {$a[]=$file;
}
closedir($hdl);
rsort($a);
foreach ($a as $value) {
$news_file = file("$dirct/$value");
$_NEWS[0] = trim($news_file[0]);
$_NEWS[1] = trim($news_file[1]);
$_NEWS[2] = trim($news_file[2]);
echo ("
<table cellspasing='5' cellpadding='0' border='0' width=100%>
<th class='news_head'>$_NEWS[0]</th>
<tr><td>
<br>$_NEWS[2]<br>
<div class='public'>$lang[20] $_NEWS[1]</div> </td></tr></table>
<br>
");
}
// файл news_edit.php из админки, в котором происходит запись новости в файл
/*done*/
if ($action == 'done') {
$title = $_POST['title'];
$news_content = $_POST['news_content'];
$_id = $_POST['_id'];
$_data_new = date("d.m.Y H:i:s");
if (empty($news_content)) {
echo "<p class='error'>$lang[19]</p>";
}
$_ttl = htmlspecialchars($title);
$_cnt = htmlspecialchars($news_content);
text2bb(); //здесь идет обработка bb-codes
$_news_file_ = fopen("$path/settings/news/$_id","w+");
fputs($_news_file_, $_ttl."\n");
fputs($_news_file_, "$_data_new\n");
fputs($_news_file_, $_cnt);
fclose($_news_file_);
}
?>
|
и вот еще вопрос, при записи в файл, если во время редактирования новости был нажат enter, то все что написано после enter не записывается. почему? | |
|
|
|
|
|
|
|
для: Keks
(20.12.2006 в 16:53)
| | поюзай функцию wrap() | |
|
|
|
|
|
|
|
для: mihdan
(20.12.2006 в 17:14)
| | где? | |
|
|
|
|
|
|
|
для: Keks
(20.12.2006 в 17:20)
| |
<?php
$text = "A very long woooooooooooooooooooooooooooooooooo ooooord.";
$text = wordwrap( $text, 10, "\n", 1);
?>
|
Получим текст порезанный по 10 сиволов | |
|
|
|
|
|
|
|
для: mihdan
(20.12.2006 в 17:30)
| | А мне надо чтобы по ширине таблицы (80%). Так можно? | |
|
|
|
|
|
|
|
для: Keks
(20.12.2006 в 17:42)
| | Нет при разбитии текста он весь развивается... Мне кажется, что вся проблема в том, что данные в файл записываются по строкам, ведь если при записи не разбивать данные на строки при помощи "\n", и вставлять файлы инклудом, то таблица не растягивается... Ни у кого такого не было? | |
|
|
|