|
|
|
|
<?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™
(19.05.2006 в 23:31)
| | и тишина...) | |
|
|
|
|
|
|
|
для: dios™
(21.05.2006 в 17:28)
| | Установите указатель в начало файла перед тем как считаете. Т.е. В методе count_it() перед строкой:
while(!feof($this->file))
|
вставьте строку:
| |
|
|
|