Автор Тема: Проблема с чтением из файла  (Прочитано 7499 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Гарик Новиков

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« : 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

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с чтением из файла
« Ответ #1 : 13 Декабря 2001, 04:25:44 »
Почему while?
А вдруг это в if (strpos($string,\'*-*\')!=false) ошибка ? :))

Тебе же надо == false, a не != false
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #2 : 13 Декабря 2001, 11:01:05 »
Перед записью сообщения замени энтеры на

Ф-я вроде nl2br

Оффлайн Гарик Новиков

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #3 : 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

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Проблема с чтением из файла
« Ответ #4 : 14 Декабря 2001, 00:24:37 »
Открыть его :)
$files = fopen("filename.ext", "r");
$string = fgets($files,100);
fclose($files);
Евгений aka Razor,

Оффлайн Гарик Новиков

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #5 : 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

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Проблема с чтением из файла
« Ответ #6 : 14 Декабря 2001, 01:20:33 »
приведи часть скрипта
Евгений aka Razor,

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
:)))))))))))))))))))))
« Ответ #7 : 14 Декабря 2001, 02:21:33 »
2Гарик Новиков

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

Ты определись что для тебя важнее - 1й или 2ой способ.
и делай 2 раза - либа оба раза fget , либо 2 раза $files[$arr]
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн Гарик Новиков

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #8 : 14 Декабря 2001, 09:13:38 »
Ув. Britva .... скрипт полностью наверху... первая мессага...

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

Заранее благодарен Гарик Новиков
ну не тормоз я... думаю просто долго

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #9 : 14 Декабря 2001, 09:17:32 »
Цитировать
многострочное сообщение... пробовал по всякому неполучается......

Перегони сообщение в однострочное при записи его в файл
с пом nl2br

Оффлайн Гарик Новиков

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #10 : 14 Декабря 2001, 09:20:15 »
Цитировать
Перегони сообщение в однострочное при записи его в файл
с пом nl2br


как я понял это просто нужно брать строчку и просто выставлять в место Ентера
???
ну не тормоз я... думаю просто долго

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #11 : 14 Декабря 2001, 09:46:32 »
Цитировать
как я понял это просто нужно брать строчку и просто выставлять в место Ентера
???

Нее. Спецфункция nl2br втыкаешь туды свою месагу и она заменяет тебе все энетеры на
. В итоге текст в файле получается в одну строку, а на экране к и вводили

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Проблема с чтением из файла
« Ответ #12 : 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/...
совершенно разные вещи.
Евгений aka Razor,

Оффлайн Гарик Новиков

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с чтением из файла
« Ответ #13 : 15 Декабря 2001, 00:28:12 »
не сочтите назойлевым братья зеляне.
Еще один глупый вопрос.
как мне обработать содержимое формы
textarea ... типа той в которой запоняем...
чтобы вместо Ентеров поставить

???
Я не тормоз я просто долго думаю
Заранее благодарен Гарик Новиков
ну не тормоз я... думаю просто долго

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Проблема с чтением из файла
« Ответ #14 : 15 Декабря 2001, 01:57:25 »