boolean fclose(resource file)
Функция fclose (листинг 9.9) закрывает открытый файл. При открытии файла программист получает целое число, которое является дескриптором файла. Этот дескриптор и используется при закрытии файла для завершения работы с ним. Функции, используемые для открытия файлов, - fopen и fsockopen. Для того чтобы закрыть канал, используется функция pclose.

Листинг 9.9. Функция fclose

<?php
// открыть файл для чтения
$myFile = fopen("data.txt", "r");
// убедиться в том, что открытие прошло успешно
if(!($myFile))
{
print(" файл нельзя открыть"); exit;
}
while(!feof($myFile))
{
// прочитать строку из файла $myLine = fgets($myFile, 255); print("$myLine <br>n");
}
// закрыть файл fclose($myFile);
?>

boolean feof(resource file)
Язык PHP хранит указатель на позицию в файле, с которой было произведено чтение в последний раз. Функция feof возвращает значение TRUE, если эта позиция находится в конце файла. Эта функция чаще всего используется в условном выражении цикла while, в котором осуществляется последовательное чтение файла с начала и до конца (листинг 9.9). Для того чтобы узнать точное положение, из которого производится операция чтения в данный момент, воспользуйтесь функцией ftell.
boolean fflush(resource file)
Функция fflush сбрасывает любые буфера, связанные с дескриптором данного файла, возвращенным функцией fopen, fsockopen или popen. О том, как сбрасываются буфера, используемые для отправки данных в браузер, см. в разделах, посвященных функциям flush и ob_flush, главы 8, "Браузер ввода-вывода".
string fgetc(resource file)
Функция fgetc (листинг 9.10) возвращает один символ из файла. Она ожидает дескриптор файла, возвращаемый функцией fopen, fsockopen или popen. К функциям, предназначенным для чтения из файла, относятся также fgetcsv, fgets, fgetss,freadиgzgetc.

j Листинг 9.10. Функция fgetc_
<?php
// открыть файл и распечатать все символы, находящиеся в нем if($myFile = fopen("data.txt", "r"))
{
while(!feof($myFile))
{
$myCharacter = fgetc($myFile); print($myCharacter);
}
fclose($myFile);
}
?>

array fgetcsv(resource file, integer length, string separator)
Функция fgetcsv (листинг 9.11) используется для чтения данных из файла, разделенных запятой. Для нее требуются дескриптор файла, возвращаемый функцией fopen, fsockopen или popen, а также максимальная длина строки. Необязательный аргумент separator задает символ разделителя полей. Если его нет - используется запятая.
Поля могут браться в двойные кавычки, что позволяет задавать в полях запятые и разрывы строк. Возвращаемое значение - массив, содержащий в каждом элементе по полю, начиная с нулевого элемента.

j Листинг 9.11. Функция fgetcsv_
<?
// открыть файл
if($myFile = fopen("data.csv", "r"))
{
print("<table border="1">n"); 
while(!feof($myFile))
{
print("<tr>n");
$myField = fgetcsv($myFile, 1024); $fieldCount = count($myField); for($n=0; $n<$fieldCount; $n++)
{
print("t<td>");
print($myField[$n]);
print("</td>n");
}
print("</tr>n");
}
fclose($myFile); print("</table>n");
}
?>

string fgets(resource file, integer length)
Функция fgets (листинг 9.12) возвращает строку из файла, определенного дескриптором, возвращенным функцией fopen, fsockopen или popen. Он попытается прочесть из файла столько символов, сколько определено аргументом length, минус один. Если аргумент length не задан, по умолчанию принимается значение, равное 1024. Конечной точкой считаются символы перевода строки и конца файла. В возвращаемые строки включаются также и разрывы строк. Следует помнить, что в разных операционных системах используются различные символы перевода строк. Другими функциями, предназначенными для чтения из файла, являются fgetc, fgetcsv, fgetss,freadиgzgetc.

Листинг 9.12. Функция fgets

<?php
// открыть файл и распечатать каждую строку if($myFile = fopen("data.txt", "r"))
{
while(!feof($myFile))
{
$myLine = fgets($myFile, 255); print($myLine);
}
fclose($myFile);
}
?>