Перемещение по файлам
Установка указателя текущей позиции в начало файла производится функцией rewind:
int rewind ( int file)
Аргумент file является дескриптором файла.
Узнать текущее положение указателя можно при помощи функции ftell:
int ftell ( int file)
Установить указатель в любое место файла можно, используя функцию fseek:
int fseek ( int file, int offset [, int whence ])
Функция fseek устанавливает указатель файла на байт со смещением offset (от начала файла, от его конца или от текущей позиции, в зависимости от значения параметра whence). Аргумент file представляет собой дескриптор файла. Аргумент whence задает с какого места отсчитывается смещение offset и может принимать одно из следующих значений:
SEEK_SET (отсчитывает позицию начала файла);
SEEK_CUR (отсчитывает позицию относительно текущего положения указателя);
SEEK_END (отсчитывает позицию относительно конца файла).
По умолчанию аргумент whence имеет значение SEEK_SET.
Узнать, находится ли указатель в конце файла, можно с помощью функции feof:
int feof ( int file)
Если указатель находится в конце файла, функция возвращает true, в ином случае возвращается false.
Функцию feof удобно использовать при чтении файла:
<?
$file = fopen ("file.txt","r");
if ($file)
{
while(!feof($file))
{
$str = fgets($file);
echo $str;
echo ("<br>");
}
fclose ( $file);
}
else
{
echo("Ошибка открытия файла");
}
?>
При помощи этой функции удобно также определять количество строк в файле:
<?
$file = fopen ("file.txt","r");
if ($file)
{
$counter = 0;
while(!feof($file))
{
$str = fgets ($file);
$counter++;
}
echo($counter);
fclose ($file);
}
else
{
echo("Ошибка открытия файла");
}
?>