ГРУППА КУРСА
|
Главная >
Учебник PHP >
Чтение и запись данных в файлеПри изучении данной темы нужно учитывать, что для обращенияк файлу одни функции используют дескриптор файла, а другие путь к файлу. Для получения дескриптора нужно открыть файл. Это рассматривалось в предыдущей теме. Чтение из файлаФункцию fread() можно использовать для получения определённого количества данных из файла. fread (файл, длина) Параметры:
файл - дескриптор файла длина - размер данных в байтах Если конец файла будет достигнут раньше, чем функция прочитает указанный размер данных, то она вернёт строку меньшего размера. Данную функцию удобно применять для чтения бинарных файлов. При указании длины строки и при перемещении указателя нужно учитывать, что русские буквы имеют размер не один байт, а больше. Подробнее об этом сказано в теме "Работа со строками". Также не забудте, что в начале файла в кодировке UTF-8 есть несколько байт. В кодировке UTF-8 без BOM эти байты отсутствуют. Прочитаем перыве 10 байт из файла myfile.txt. Откроем его в режиме 'r+'. Указатель будет находится в начале. +
Если в файле присутствуют русские буквы, то последняя буква может отображаться неправильно. Это происходит потому, что символ имеет размер больше одного байта и одна часть прочитана, а вторая нет. Функция fgets() возвращает одну строку, начиная от указателя до конца строки. fgets (файл, длина) Параметры:
файл - дескриптор файла длина - позволяет указать максимальный размер строки в байтах. Необязательный параметр. Запуск функции в цикле позволяет произвести чтение файла построчно. Прочитаем одну строку строку из файла myfile.txt. Так как указатель уже перемещён, то будет прочитана не вся строка, а от указателя.
Функция fgetss() также возвращает одну строку, но удаляет из неё HTML теги. Если в коде присутствует PHP скрипт, то он тоже будет удалён. fgetss (файл, длина, нужные тэги) Параметры:
файл - дескриптор файла длина - размер строки в байтах. Необязательный параметр. нужные теги - позволяет указать тэги, которые не будут удалены. Существует функция fgetc(), которая возвращает один символ из файла. Функция file() читает весь файл и помещает данные в массив. Каждая строка помещается в элемент массива. Для работы этой функции не требуется открывать файл. Расположение указателя не учитывается. file (путь к файлу, флаги, контекст) Параметры:
путь к файлу - абсолютный или относительный путь к файлу флаги - флаги, определяющие работу функции. Необязательный параметр. Можно указать такие флаги: FILE_USE_INCLUDE_PATH - позволяет искать файл в папках include path. FILE_IGNORE_NEW_LINES - удаляет символ конца строки. Если этот флаг не установлен, то в каждой строке будет символ конца строки. FILE_SKIP_EMPTY_LINES - не добавляет в массив пустые строки. Если указывается несколько флагов, то они разделяются оператором "|". контекст - позволяет указать ресурс контекста Выведем файл myfile.txt на страницу.
Запись в файлФункция fwrite() записывает данные в файл. fwrite (файл, данные, длина) Параметры:
файл - дескриптор файла данные - данные, которые записываются длина - максимальный размер записываемых данных в байтах. Может быть записана не вся строка, а только указанное количество байт. Необязательный параметр. Если указатель находится в начале или середине файла, функция заменяет символы, находящиеся в файле, на новые. То есть, если записывается 5 символов, то из файла удаляются 5 символов и на их место добавляются новые. Когда вы записываете русские буквы, то кодировка скрипта должна соответствовать кодировке файла. Запишем в файл строку "текст из скрипта". В нашем примере дескрептор находится в середине файла и строка запишется туда. Когда нужно добавить данные в конец файла, то его можно открыть в режиме 'a'. А когда нужно перезаписать файл, его открывают в режиме 'w'. Мы не будем передвигать указатель, запишем данные туда, где он находится.
|