Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЕвгения Золотарёва
1 РНР Изучение языка
2 Работа с файлами
3 Для длительного хранения данных в файловой системе сервера часто используются обычные текстовые файлы. Открыть файл Прочитать данные из файла или записать данные в файл Закрыть файл
4 Открытие файлов в файловой системе сервера производится при помощи функции fopen: fopen(имя_файла, режим, каталог_по_умолчанию)
5 Первый аргумент - имя файла или абсолютный путь к нему. Если абсолютный путь не указывается, то файл должен находится в текущем каталоге.
6 Второй аргумент режим говорит о том, для каких действий открывается файл и может принимать следующие значения: r (Открыть файл только для чтения; после открытия указатель файла устанавливается в начало файла); r+ (Открыть файл для чтения и записи; после открытия указатель файла устанавливается в начало файла); w (Создать новый пустой файл только для записи; если файл с таким именем уже есть вся информация в нем уничтожается);
7 w+ (Создать новый пустой файл для чтения записи; если файл с таким именем уже есть вся информация в нем уничтожается); a (Открыть файл для дозаписи; данные будут записываться в конец файла); a+ (Открыть файл для дозаписи и чтения данных; данные будут записываться в конец файла); b (Флаг, указывающий на работу (чтение и запись) с двоичным файлом; указывается только в Windows).
8 Третий необязательный аргумент определяет должны ли искаться файлы в каталоге, установленном по умолчанию. (Каталог по умолчанию устанавливается в файле php.ini).
9 В случае удачного открытия файла, функция fopen возвращает дескриптор файла, в случае неудачи - false.
10 Дескриптор (идентификатор) файла представляет собой указатель на открытый файл, который используется операционной системой для поддержки операций с этим файлом.
11 Этот код открывает файл C:/WWW/HTML/file.txt для чтения: $file = fopen("c:/www/html/file.txt","r"); if(!$file) { echo("Ошибка открытия файла"); } ?> ">
12 Содержимое открытого файла можно отобразить в браузере с помощью функции fpassthru (дескриптор)
13 $file = fopen("c:/www/html/picture1.jpg","rb"); if(!$file) { echo("Ошибка открытия файла"); } else { fpassthru($file); } ?> ">
15 Еще одна функция отображения readfile (имя_файла) в качестве аргумента принимает имя файла, а не его дескриптор: readfile ("file.txt"); ?> ">
16 Закрытие файлов осуществляется с помощью функции fclose (дескриптор)
17 Прочитать строку из открытого файла можно с помощью функции fread (дескриптор, длина ) Эта функция возвращает строку заданной длины символов.
18 Пример (чтение из файла): $file = fopen("c:/www/html/file.txt","r"); if(!file) { echo("Ошибка открытия файла"); } else { $buff = fread ($file,100); print $buff; } ?> ">
19 Файл отсутствует в текущем каталоге
20 Файл file.txt
21 Для чтения из файла можно также пользоваться функцией fgets: fgets (дескриптор, длина) Эта функция читает и возвращает строку заданной длины минус 1 байт.
22 Чтение прекращается, когда достигнута новая строка или конец файла.
23 Для чтения файла с удалением из него тегов HTML применяется функция fgetss (дескриптор, длина [, допустимые_теги])
24 Необязательный параметр допустимые_теги может содержать строку со списком тегов (через запятую), которые не должны быть отброшены, при этом теги в строке записываются.
25 Для чтения содержимого файла в массив, применяется функция file (имя_файла) Каждый элемент массива соответствует строке в прочитанном файле.
27 Функция feof (дескриптор) возвращает true при достижении указателем конца файла, а в противном случае возвращается false.
28 Функция file() удобна также тем, что с ее помощью можно легко подсчитать количество строк в файле: $file_array = file ("file.txt"); if(!$file_array) { echo("Ошибка открытия файла"); } else { $num_str = count($file_array); echo($num_str); } ?> ">
30 Примечание. Функцию file следует применять лишь для чтения небольших файлов.
31 Для чтения файлов с расширением *.csv применяется функция fgetcsv ( дескриптор, длина, разделитель, ограничитель) Функция читает строку из файла и разбивает ее по символу разделитель.
32 Формат CSV является одним из форматов, в котором могут сохранять файлы MS Excel, MS Access и ряд др. программ.
33 Запись в файлы осуществляется функциями fputs и fwrite: fputs (дескриптор, строка [, длина ]) fwrite (дескриптор, строка [, длина ])
34 Второй аргумент представляет собой строку, которая должна быть записана в файл. Если третий аргумент не указан, записывается вся строка.
Файл открыт для чтени" title="В этом примере в файл "file.txt" записывается строка $file = fopen ("file.txt","r+"); $str = «Мировые информационные ресурсы"; if ( !$file ) { echo("Ошибка открытия файла"); } else { fputs ( $file, $str); } fclose ($file); ?> Файл открыт для чтени" class="link_thumb"> 35 В этом примере в файл "file.txt" записывается строка $file = fopen ("file.txt","r+"); $str = «Мировые информационные ресурсы"; if ( !$file ) { echo("Ошибка открытия файла"); } else { fputs ( $file, $str); } fclose ($file); ?> Файл открыт для чтения и записи; указатель установлен в начало файла Файл открыт для чтени"> Файл открыт для чтения и записи; указатель установлен в начало файла"> Файл открыт для чтени" title="В этом примере в файл "file.txt" записывается строка $file = fopen ("file.txt","r+"); $str = «Мировые информационные ресурсы"; if ( !$file ) { echo("Ошибка открытия файла"); } else { fputs ( $file, $str); } fclose ($file); ?> Файл открыт для чтени">
36 БЫЛО: СТАЛО:
37 ПРИМЕР (СЧЕТЧИК) Открыть файл только для чтения; указатель устанавливается в начало файла Создать новый пустой файл только для записи; если файл с таким именем уже есть - вся информация в нем уничтожается
38 Функция include() включает в сценарий фрагменты кода, сохраненные в других файлах
40 Примечание. Функция include() включает в сценарий фрагменты кода, сохраненные в других файлах.
41 Копирование файлов copy (имя_файла_1, имя_файла 2)
42 Переименование файла rename (старое_имя, новое_имя)
43 Удаление файла unlink (имя_файла)
44 Работа с каталогами
45 Для установки текущего каталога применяется функция chdir: chdir (каталог)
46 Работать с этой функцией можно следующим образом: chdir("/tmp/data"); // переход по абсолютному пути chdir("./js"); // переход в подкаталог текущего каталога chdir(".."); // переход в родительский каталог
47 Чтобы узнать текущий каталог getcwd (путь)
48 Открыть каталог opendir (путь)
49 Прочитать каталог dir ( каталог) Эта функция возвращает имена элементов, содержащихся в каталоге. Кроме файлов и папок в каталогах находятся также элементы "." и "..".
50 Текущий каталог, можно открыть, указав его имя как ".": $dir = opendir (".");
51 Закрытие каталога closedir (дескриптор)
52 Пример чтения и вывода файлов, находящихся в текущем каталоге. $dir = opendir ("."); echo "Files: "; while ($file = readdir ($dir)) { echo "$file "; } closedir ($dir); ?> ">
54 Можно исключить значения "." и ".." следующим образом: $dir = opendir ("."); while ( $file = readdir ($dir)) { if (( $file != ".") && ($file != "..")) { echo "$file "; } closedir ($dir); ?> ">
56 В качестве примера на рассмотренные функции, создадим скрипт, удаляющий все файлы из каталога c:/temp, к которым не было доступа в течение суток. Функция удаления файлов в этом случае вызывается рекурсивно.
24*60*60) { if" title=" function delTemporaryFiles ($directory) { $dir = opendir ($directory); while (( $file = readdir ($dir))) { if( is_file ($directory."/".$file)) { $acc_time = fileatime ($directory."/".$file); $time = time(); if (($time - $acc_time) > 24*60*60) { if" class="link_thumb"> 57 function delTemporaryFiles ($directory) { $dir = opendir ($directory); while (( $file = readdir ($dir))) { if( is_file ($directory."/".$file)) { $acc_time = fileatime ($directory."/".$file); $time = time(); if (($time - $acc_time) > 24*60*60) { if ( unlink ($directory."/".$file)) { echo ("Файлы успешно удалены"); } } } 24*60*60) { if"> 24*60*60) { if ( unlink ($directory."/".$file)) { echo ("Файлы успешно удалены"); } } }"> 24*60*60) { if" title=" function delTemporaryFiles ($directory) { $dir = opendir ($directory); while (( $file = readdir ($dir))) { if( is_file ($directory."/".$file)) { $acc_time = fileatime ($directory."/".$file); $time = time(); if (($time - $acc_time) > 24*60*60) { if">
58 else if ( is_dir ($directory."/".$file) && ($file != ".") && ($file != "..")) { delTemporaryFiles ($directory."/".$file); } closedir ($dir); } delTemporaryFiles ("c:/temp"); ?> ">
59 Создание каталогов mkdir ( имя_каталога) В случае неудачи возвращает false.
60 Удалить каталог rmdir ( имя_каталога)
61 При чтении данных из файла указатель текущей позиции перемещается к очередному непрочитанному символу. Установка указателя текущей позиции в начало файла rewind ( дескриптор)
62 Узнать текущее положение указателя можно при помощи функции ftell: ftell ( дескриптор)
63 Установливает указатель в любое место файла fseek ( дескриптор, смещение [, int whence ]) Функция устанавливает указатель файла на байт с о смещением offset (от начала файла, от его конца или от текущей позиции, в зависимости от значения параметра whence).
64 Аргумент file представляет собой дескриптор файла. Аргумент whence задает с какого места отсчитывается смещение offset и может принимать одно из следующих значений: SEEK_SET (отсчитывает позицию начала файла); SEEK_CUR (отсчитывает позицию относительно текущего положения указателя); SEEK_END (отсчитывает позицию относительно конца файла). По умолчанию аргумент whence имеет значение SEEK_SET.
65 Узнать, находится ли указатель в конце файла, можно с помощью функции feof: feof (file) Если указатель находится в конце файла, функция возвращает true, в ином случае возвращается false.
66 Функцию feof удобно использовать при чтении файла: $file = fopen ("file.txt","r"); if ($file) { while(!feof($file)) { $str = fgets($file); echo $str; echo (" "); } fclose ( $file); } else { echo("Ошибка открытия файла"); } ?> ">
67 При помощи этой функции удобно также определять количество строк в файле: $file = fopen ("file.txt","r"); if ($file) { $counter = 0; while(!feof($file)) { $str = fgets ($file); $counter++; } echo($counter); fclose ($file); } else { echo("Ошибка открытия файла"); } ?> ">
68 Для получения дополнительной информации об атрибутах файла можно воспользоваться следующими функциями. Функция file_exists проверяет, существует ли файл и возвращает true, если файл существует и false в противном случае: file_exists (filename)
69 Функция fileatime возвращает время последнего обращения к файлу: fileatime (filename)
70 Функция filemtime возвращает время последней модификации содержимого файла: filemtime (filename)
71 Функция file_size возвращает размер файла в байтах: file_size (filename)
72 Функция file_type возвращает тип файла: file_type (filename) Строка, возвращаемая этой функцией, содержит один из следующих типов файла: char (специальное символьное устройство); dir (каталог); fifo (именованный канал); link (символическая ссылка); block (специальное блочное устройство); file (обычный файл); unknown (тип не установлен).
73 Поскольку использование функций, возвращающих характеристики файла, весьма ресурсоемко, во избежание потери производительности при вызовах таких функций, PHP кэширует информацию о файле. Очистить этот кэш можно с помощью функции clearstatcache: clearstatcache(); ?>
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.