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

Форум PHP

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

 

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

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

тема: Количество строк в файле?
 
 автор: dios™   (19.05.2006 в 23:31)   письмо автору
 
 


<?php

class WorkWithFile
{
        
//Дескриптор файла
        
var $file;
        
//Буфер
        
var $buff;
        
//счетчик строк
        
var $counter;
        
//строка
        
var $str;
        function 
__construct($filename)
        {
                
//открытие файла
                
$this->file = @fopen($filename"r");
                if(!
$this->file)
                {
                        throw new 
Exception("Файл $filename не найден"21);
                }
        }
        function 
read()
        {
                
//чтени из файла
                
$this->buff fread($this->file,100);
        }
        function 
print_it()
        {
                
//вывод информации
                
print($this->buff);
        }
        function 
count_it()
        {
                
//Подсчет кол-ва строк в файле
                
$this->counter 0;
                while(!
feof($this->file))
                {
                        
$this->str fgets($this->file);
                        
$this->counter++;
                }
                echo(
"<br />Кол-во строк в файле: ".$this->counter);
        }
        function 
__destruct()
        {
                
//закрытие файла
                
fclose($this->file);
                unset(
$this->file,$this->buff);
        }
}
try
{
        
$first = new WorkWithFile("127_file.txt");
        
$first->read();
        
$first->print_it();
        
$first->count_it();
        
$second = new WorkWithFile("128_file.txt");//не существует
        
$second->read();
        
$second->print_it();
        
$second->count_it();
}
catch(
Exception $e)
{
        echo(
"<br />Исключение ".$e->getCode().": ".$e->getMessage."<br />");
        echo(
"в файле ".$e->getFile()."<br />");
        echo(
"строка ".$e->getLine()."<br />");
}

?>

Содержание файла 127_file.txt:

ПРЕВЕД
НАЧЕЛ
пох коммент языка превед
КОНЧЕЛ;
МЕДВЕД

Результат выполнения:

ПРЕВЕД НАЧЕЛ пох коммент языка превед КОНЧЕЛ; МЕДВЕД
Кол-во строк в файле: 0
Исключение 21: 
в файле C:\www\test\246_exception_class_file.php
строка 17

Никак не могу понять, почему кол-во строк в файле не подсчитывается... вроде бы все правильно сделал... Или в классе как-то по другому себя ведут функции?
P.S. У меня стоит PHP версии 5.1.2. Заранее благодарю за помощь...

   
 
 автор: dios™   (21.05.2006 в 17:28)   письмо автору
 
   для: dios™   (19.05.2006 в 23:31)
 

и тишина...)

   
 
 автор: Евгений Петров   (21.05.2006 в 17:41)   письмо автору
 
   для: dios™   (21.05.2006 в 17:28)
 

Установите указатель в начало файла перед тем как считаете. Т.е. В методе count_it() перед строкой:
while(!feof($this->file))

вставьте строку:
fseek($this->file,0);

   
Rambler's Top100
вверх

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