Модуль 12. Работа с файлами Flashcards

1
Q

Функция file($fileToRead)

A

Функция file позволяет получить содержимое файла, при этом эта функция возвращает массив, где каждый
элемент - это отдельная строка такого файла. символ переноса строки
также сохраняется. С помощью функции trim его можно убрать из строки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Функция file_get_contents($fileToRead);

A

функция для получения содержимого всего файла. В отличие от предыдущей функции, эта возвращает содержимое в виде строки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

функция readfile($fileToRead)

A

функция считывает содержимое файла и сразу же его
выводит

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Функция file_put_contents($fileToWrite, $content);

A

Функция для записи данных в файл. У этой функции четыре параметра.
Первый - абсолютный путь к файлу, в который нужно осуществить запись. Второй - строка, которую нужно
записать в файл. Третий - это дополнительные параметры для записи. Четвертый - используется для записи в другой
поток, мы его не будем использовать.
Если третий параметр не указан то файл будет полностью перезаписан, параметр указывается в виде константы например
FILE_APPEND

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Функции проверки файла

A

С помощью этих функций можно проверить, существует ли файл, является он файлом или директорией
is_dir($file)
is_file($file)
file_exists($file)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Функция для получения информации о файле ?

A

функция pathinfo($file) возвращает информацию о файле в виде ассоциативного массива
[dirname] => /dir/to/file
[basename] => example.txt
[extension] => txt
[filename] => example

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Функция копирования файла

A

С помощью функции copy($file, $secondFile); можно скопировать файл, т.е. создать новый файл с тем же содержимым, что и
исходный файл.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Перемещения файла в директории

A

Функция rename($secondFile, $thirdFile); позволяет переместить файл на новое место.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Как удалить файл

A

Для удаления файла используется функция unlink($file)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

получить родительскую директорию у файла

A

Получить путь к родительской директории сожно функцией dirname($baseDir)
Во втором параметре можно передать уровень родителькой директории

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

фукнция scandir($baseDir)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Поток

A

Поэтапное чтение содержимого файла. Сначала создается поток и потом происходит работа с файлами

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Создание потока

A

Для создания потока используется функция fopen($fileToRead, ‘r’);
Эта функция принимает четыре параметры, мы рассмотрим только два из них, первый - абсолютный путь к
файлу, второй модификатор, который определяет для каких действий будет открыт файл.

$fileToRead = $baseDir . DIRECTORY_SEPARATOR . ‘example.txt’;
$stream = fopen($fileToRead, ‘r’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Модификаторы при создании потока

A

‘r’ Открывает файл только для чтения; помещает указатель в начало файла.

‘r+’ Открывает файл для чтения и записи; помещает указатель в начало файла.

‘w’ Открывает файл только для записи; в противном случае ведёт себя так же, как и ‘w+’.

‘w+’ Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если
файл не существует - пытается его создать.

‘a’ Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его
создать. В данном режиме функция fseek() не применима, записи всегда добавляются в конец.

‘a+’ Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его
создать. В данном режиме функция fseek() влияет только на позицию чтения, записи всегда добавляются в конец.

‘x’ Создает и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов
fopen() закончится неудачей, вернёт false и выдаст ошибку уровня E_WARNING. Если файл не существует,
попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного
вызова open(2).

‘x+’Создает и открывает для чтения и записи; в остальном имеет то же поведение, что и ‘x’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Чтение файла в потоке по байтам

A

функция fread позволяет считать из потока
указанное число байт.
$content = fread($stream, filesize($fileToRead));
При чтении файла указатель будет смещаться на последнее место с которого было чтение

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Перемещение указателя в потоке

A

Функция fseek($stream, 0); перемещает указатель, при указании 0 перемещает его в начало

17
Q

Построчное чтение файла в потоке

A

с помощью функции stream_get_line считывать содержимое файла, до тех пор пока не достигнем символа переноса строки или окончания файла.
while ($line = stream_get_line($stream, 0, PHP_EOL)) {
echo $line . PHP_EOL;
}
С помощью второго параметра можно ограничить количество считываемых байт, 0 - без ограничений. А
третий параметр определяет символ переноса строки.

18
Q

Закрытие потока

A

Чтобы закрыть поток нужно воспользоветься функцией fclose($stream)

19
Q

Запись в файл в потоке

A

для записи используется функция fwrite()

for ($i = 0; $i < 3; $i++) {
fwrite($stream, ‘line ‘ . $i . PHP_EOL);
}

20
Q

CSV

A

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

21
Q

Структура CSV файла

A

Первая строка задает заголовки полей
дальше кажадая запись указывается через разделитель
Если запись большая и трьуется перенос строки то она указывается в ковычках

name;email;age
“User 1”;user1@example.com;13

22
Q

Чтение данных из csv файла

A

$keys = fgetcsv($stream, 0, ‘;’, ‘”’);
Фукнция проходит по каждой записи в истории по указанным параметрам. При этом каждая строка сразу преобразуется в обычный нумерованный массив.

23
Q

Запись в csv файл

A

fputcsv($stream, array_keys($newUser), ‘;’, ‘”’);
Функция записывает данные в файл, данные передаются в виде массива который преобразуется в строку и записывается в файл

24
Q

Потоковое чтение директории

A

функция dir. Она в свою очередь возвращает встроенный в PHP объект Directory. С его помощью можно постепенно считывать данные из директории.

$directory = dir($baseDir);
while ($file = $directory->read()) {
echo $file . PHP_EOL;
}

25
Q

Синтаксис JSON

A

Для определения массивов используются квадратные скобки, а для определения объектов фигурные. Ключи
отделяются от значений двоеточием. Сами ключи должны быть указаны в двойных кавычках, значения могут быть
и строками, и цифрами, и массивами, и другими объектами.

26
Q

преобразования данных в JSON-строку

A

json_encode($data);

27
Q

парсинга JSON строки и формировании массива данных из нее.

A

json_decode($encodedString);
При таком преобразовании в массивы будет сконвертированы только массивы JSON, но не объекты. Объекты
будут преобразованы во встроенный в PHP объект класса stdClass, а поля будут свойствами этого объекта.
Но функция json_encode принимает второй параметр boolean, с помощью которого можно выполнить полное
преобразование к ассоциативным массивам.

28
Q

Добавить загрузку на сервер!

A

Добавить загрузку на сервер!