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

Форум PHP

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

 

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

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

тема: Проблема при чтении файлов.
 
 автор: Keks   (19.12.2006 в 21:26)   письмо автору
 
 

У меня такая ситуация: один скрипт создает файл и записывает в него введенные пользователем через форму данные. Запись идет по строкам. Другой скрипт берет созданный файл в виде массива через file() и считывает по строке на каждую переменную (trim). И текст юзера через echo выводится в таблицу. Но если строка очень длинная, то этот текст не переносится, а продолжается в ширину. Что делать?

   
 
 автор: cheops   (19.12.2006 в 22:48)   письмо автору
 
   для: Keks   (19.12.2006 в 21:26)
 

Можно принудительно разбивать длинные слова, например, при помощи решения, представленного в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=4580.

   
 
 автор: Keks   (19.12.2006 в 23:01)   письмо автору
 
   для: 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 больше ширины таблицы,то почему то он не переносится,а таблица растягивается

   
 
 автор: cheops   (20.12.2006 в 02:10)   письмо автору
 
   для: Keks   (19.12.2006 в 23:01)
 

Прикрепите пожалуйста файл text.php к сообщению с таким текстом (нужен именно ваш файл, который растягивает текст) и сообщите каким браузером просматриваете страницу?

   
 
 автор: Keks   (20.12.2006 в 07:17)   письмо автору
 
   для: cheops   (20.12.2006 в 02:10)
 

В файле text.php нету никакого php кода, он нужен для хранения пользовательских данных. И если этот файл не читать по строке, а вставить инклудом, то все нормально.

   
 
 автор: XPraptor   (20.12.2006 в 12:01)   письмо автору
 
   для: Keks   (20.12.2006 в 07:17)
 

Настрой таблицу. В стиль table поставь table-layout:fixed; или в td поставь overflow:hidden.

   
 
 автор: cheops   (20.12.2006 в 12:50)   письмо автору
 
   для: Keks   (20.12.2006 в 07:17)
 

Он нужен, чтобы воспроизвести ситуацию.

   
 
 автор: Keks   (20.12.2006 в 16:53)   письмо автору
 
   для: 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 не записывается. почему?

   
 
 автор: mihdan   (20.12.2006 в 17:14)   письмо автору
 
   для: Keks   (20.12.2006 в 16:53)
 

поюзай функцию wrap()

   
 
 автор: Keks   (20.12.2006 в 17:20)   письмо автору
 
   для: mihdan   (20.12.2006 в 17:14)
 

где?

   
 
 автор: mihdan   (20.12.2006 в 17:30)   письмо автору
 
   для: Keks   (20.12.2006 в 17:20)
 


<?php
$text 
"A very long woooooooooooooooooooooooooooooooooo ooooord.";
$text wordwrap$text10"\n"1);
?>

Получим текст порезанный по 10 сиволов

   
 
 автор: Keks   (20.12.2006 в 17:42)   письмо автору
 
   для: mihdan   (20.12.2006 в 17:30)
 

А мне надо чтобы по ширине таблицы (80%). Так можно?

   
 
 автор: Keks   (20.12.2006 в 22:59)   письмо автору
 
   для: Keks   (20.12.2006 в 17:42)
 

Нет при разбитии текста он весь развивается... Мне кажется, что вся проблема в том, что данные в файл записываются по строкам, ведь если при записи не разбивать данные на строки при помощи "\n", и вставлять файлы инклудом, то таблица не растягивается... Ни у кого такого не было?

   
Rambler's Top100
вверх

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