52680.fb2 Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 77

Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 77

Синтаксис:

int fwrite(int $f, string $str)

Записывает в файл $f все содержимое строки $str. Эта функция составляет пару для fread(), действуя "в обратном направлении".

При работе с текстовыми файлами (то есть когда указан символ t в режиме открытия файла) все n автоматически преобразуются в тот разделитель строк, который принят в вашей операционной системе.

fgets

Читает из файла одну строку, заканчивающуюся символом новой строки n.

Синтаксис:

string fgets(int $f, int $length)

Этот символ также считывается и включается в результат. Если строка в файле занимает больше $length-1 байтов, то возвращаются только ее $length-1 символов. Функция полезна, если вы открыли файл и хотите "пройтись" по всем ее строкам. Однако даже в этом случае (и быстрее) будет воспользоваться функцией File(). Стоит также заметить, что эта функция (как и функция fread()) в случае текстового режима в Windows заботиться о преобразовании пар \r\n в один символ \n.

fputs

Полный аналог fwrite().

Синтаксис:

int fputs(int $f, string $str)

fgetcsv

Функция для работы с одним из форматов файлов, в котором может сохранять данные Excel.

Синтаксис:

list fgetcsv(int $f, int $length, char $delim=",")

Функция читает строку из файла, заданного дескриптором $f, и разбивает ее по символу $delim. Параметр $delim должен обязательно быть строкой из одного символа, в противном случае принимается во внимание только первый символ этой строки. Функция возвращает получившийся список или false, если строки кончились. Параметр $length задает максимальную длину строки точно так же, как это делается в fgets(). Пустые строки в файле не игнорируются, а возвращаются как список из одного элемента - пустой строки.

Пример:

$f=fopen("file.csv","r") or die("Ошибка");

for($i=0; $data=fgetscsv($f, 1000, ";"); $i++) {

$num = count($data);

if($num==1 && $data[0]==="") continue;

echo "<h3>Строка номер $i ($num полей):</h3>";

for($c=0; $c<$num; $c++)

print "[$c]: $data[$c]<br>";

}

fclose($f);

Положение указателя текущей позиции

feof

Указатель конца файла.

Синтаксис:

int feof(int $f)

Возвращает true, если достигнут конец файла (то есть если указатель файла установлен за концом файла).

Пример:

$f=fopen("myfile.txt","r");

while(!feof($f))

{ $str=fgets($f);

// Обрабатываем очередную строку $str

}

fclose($f);

fseek

Устанавливает указатель файла на определенную позицию.

Синтаксис:

int fseek(int $f, int $offset, int $whence=SEEK_SET)

Устанавливает указатель файла на байт со смещением $offset (от начала файла, от его конца или от текущей позиции, в зависимости от параметра $whence). Это может и не сработать, если дескриптор $f ассоциирован не с обычным локальным файлом, а с соединением HTTP или FTP.

Параметр $whence задает с какого места отсчитывается смещение $offset. В PHP для этого существуют три константы, равные, соответственно, 0, 1 и 2:

В случае использования последних двух констант параметр $offset вполне может быть отрицательным (а при применении SEEK_END он будет отрицательным наверняка). В случае успешного завершения эта функция возвращает 0, а в случае неудачи -1.

ftell

Возвращает положение указателя файла.

Синтаксис: