класс чтения файлов

Модератор: Злобный

Ответить
Аватара пользователя
BIOHAZARD
Новичок
Сообщения: 34
Зарегистрирован: Ср ноя 02, 2005 12:03
Откуда: Кишинев

класс чтения файлов

Сообщение BIOHAZARD »

Мне нужно прочитать файл с помощью обьекта
вот класс чтения файлов

Код: Выделить всё

class op_file
  {
  var $filename=''; 
  var $rej='';  //Mode of reading
  var $id_file=''; 
  var $out='';
  function __construct($filename,$rej)
  {
  $this->filename = $filename;
  $this->rej = $rej;
  $this->id_file = fopen($this->filename,$this->rej);
  $this->out = $out;
  }
  function output_file()
  {
  while (!feof($this->id_file))
  {
  $this->out = fgets($this->id_file,255);
  }
  return $this->out;
  }
  function __destruct()
  {
  fclose($this->id_file);
  }
  }
$conten = new op_file('model.txt',r);
echo $conten->output_file();
но этот класс выводит только последнии 255 символов.Если return засунуть внутрь while то выводятся первые 255 символов .как грамотно решить эту проблемму.
ищейка
Продвинутый
Сообщения: 784
Зарегистрирован: Чт мар 11, 2004 12:36
Контактная информация:

Сообщение ищейка »

во первых ты явно изучал до этого что то типо си...
Явные ошибки:
1. $conten = new op_file('model.txt',r); надо второй параметр брать в ковычки
2. ДЛя оптимизаци если надо прочесть весь файл то проще юзать file_get_content()
3. Если приспичело через фопен то тогда while (!feof($this->id_file)) очень долгая функция(можно быстрее выполнять этот)
можно

Код: Выделить всё

do
  { 
  $this->out.=$tmp= fgets($this->id_file,255); 
  } while ($tmp!="");
Так будет проще и быстрее...

[off]добавлено спустя 1 минуту:[/off]

ЗЫ самое грамотное решение, не делать нечего вообще )
Ответить

Вернуться в «Программирование»