Forum Webscript.Ru

Программирование => PHP => Тема начата: Гарик Новиков от 13 Декабря 2001, 00:09:26

Название: Проблема с чтением из файла
Отправлено: Гарик Новиков от 13 Декабря 2001, 00:09:26
Доброго всем времени суток.

У меня есть файл с сообщениями.
вфглядит следующим образом.
ID|AVTOR|TEMA|MAIL|DATE|MESSAGE...
и заканчивается вот так
*-*-*-*-*-*-*...
это для того чтобы как-то разделить сообщения между собой
дык вот в чем проблема.
читаю я эту беду след образом:

$files = file("mess.txt");
while (list($arr) = each($files)) {
$mess = explode("|", $files[$arr]);
echo "$mess[2]";
echo "$mess[4]:$mess[1]";
// с этого моментна начинаем считывать текст
$i=0;
 while ($i==0) {
   if (strpos($string,\'*-*\')!=false) { // пока ненаходим в строке *-*
      $string=fgets($files,100);   // читаем строку
   print ($string);      // выводим ее на экран
   print $i;                  // печатаем $i
    }
   else { $i++;}              // иначе наращиваем $i и обрываем while
     } // продолжаем выводить таблицу..
echo "$mess[3]";
}
?>

вот вся проблема в том, что он нехочет читать многострочные мессаги... он их просто разбивает.  И если впихивать сюда таблицу, то он просто повторяет несколько раз внешний while а внутренний как бы его и не касается... ну нехочет оне его..
подскажите плиз в чем моя ошибка.
Заранее благодарен Гарик Новиков
Название: Проблема с чтением из файла
Отправлено: Oak от 13 Декабря 2001, 04:25:44
Почему while?
А вдруг это в if (strpos($string,\'*-*\')!=false) ошибка ? :))

Тебе же надо == false, a не != false
Название: Проблема с чтением из файла
Отправлено: bhor от 13 Декабря 2001, 11:01:05
Перед записью сообщения замени энтеры на

Ф-я вроде nl2br
Название: Проблема с чтением из файла
Отправлено: Гарик Новиков от 13 Декабря 2001, 23:47:22
спасибо что открыли глаза.... но теперь другая проблем встает.... он понимаешь ли ругется.....

Warning: Supplied argument is not a valid File-Handle resource in c:\\usr\\htdocs\\test\\11\\noti.php on line 19

у меня эта строка $string=fgets($files,100);
я так понял что он ругается на то, что неможет прочитать неоткрытый файл....
чего мне делать господа подскажите плиз...

Заранее благодарен Гарик Новиков
Название: Проблема с чтением из файла
Отправлено: Britva от 14 Декабря 2001, 00:24:37
Открыть его :)
$files = fopen("filename.ext", "r");
$string = fgets($files,100);
fclose($files);
Название: Проблема с чтением из файла
Отправлено: Гарик Новиков от 14 Декабря 2001, 01:00:24
Цитировать
Открыть его  
$files = fopen("filename.ext", "r");
$string = fgets($files,100);
fclose($files);


м-м-м-м..... пробовал..... он начинает ругаться на следющее...

Warning: Variable passed to each() is not an array or object in c:\\usr\\htdocs\\test\\11\\noti.php on line 8

а точнее на while (list($arr) = each($files)) {
Название: Проблема с чтением из файла
Отправлено: Britva от 14 Декабря 2001, 01:20:33
приведи часть скрипта
Название: :)))))))))))))))))))))
Отправлено: Oak от 14 Декабря 2001, 02:21:33
2Гарик Новиков

$files = file("mess.txt");  и  $files = fopen("filename.ext", "r"); несовместимы!!!!

Ты определись что для тебя важнее - 1й или 2ой способ.
и делай 2 раза - либа оба раза fget , либо 2 раза $files[$arr]
Название: Проблема с чтением из файла
Отправлено: Гарик Новиков от 14 Декабря 2001, 09:13:38
Ув. Britva .... скрипт полностью наверху... первая мессага...

Ув. Oak ... будте так любезны подскажите как мне тогда при
file().. читать многострочное сообщение... пробовал по всякому неполучается......

Заранее благодарен Гарик Новиков
Название: Проблема с чтением из файла
Отправлено: bhor от 14 Декабря 2001, 09:17:32
Цитировать
многострочное сообщение... пробовал по всякому неполучается......

Перегони сообщение в однострочное при записи его в файл
с пом nl2br
Название: Проблема с чтением из файла
Отправлено: Гарик Новиков от 14 Декабря 2001, 09:20:15
Цитировать
Перегони сообщение в однострочное при записи его в файл
с пом nl2br


как я понял это просто нужно брать строчку и просто выставлять в место Ентера
???
Название: Проблема с чтением из файла
Отправлено: bhor от 14 Декабря 2001, 09:46:32
Цитировать
как я понял это просто нужно брать строчку и просто выставлять в место Ентера
???

Нее. Спецфункция nl2br втыкаешь туды свою месагу и она заменяет тебе все энетеры на
. В итоге текст в файле получается в одну строку, а на экране к и вводили
Название: Проблема с чтением из файла
Отправлено: Britva от 14 Декабря 2001, 12:14:21
Цитировать

$files = file("mess.txt");
while (list($arr) = each($files)) {
$mess = explode("|", $files[$arr]);
echo "$mess[2]";
echo "$mess[4]:$mess[1]";
// с этого моментна начинаем считывать текст
$i=0;
while ($i==0) {
if (strpos($string,\'*-*\')!=false) { // пока ненаходим в строке *-*
$string=fgets($files,100); // читаем строку
print ($string); // выводим ее на экран
print $i; // печатаем $i
}
else { $i++;} // иначе наращиваем $i и обрываем while
} // продолжаем выводить таблицу..
echo "$mess[3]";
}
?>

в $files это массив всех строк из файла mess.txt !
а fgets\'у нужен идентификатор открытого файла через fopen/...
совершенно разные вещи.
Название: Проблема с чтением из файла
Отправлено: Гарик Новиков от 15 Декабря 2001, 00:28:12
не сочтите назойлевым братья зеляне.
Еще один глупый вопрос.
как мне обработать содержимое формы
textarea ... типа той в которой запоняем...
чтобы вместо Ентеров поставить

???
Я не тормоз я просто долго думаю
Заранее благодарен Гарик Новиков
Название: Проблема с чтением из файла
Отправлено: Britva от 15 Декабря 2001, 01:57:25