Файлы — манипуляции с курсором
Мы можем перемещать курсор. Для это есть функция fseek. Параметры функции: дескриптор файла, offset, whence (необязательный параметр, константа), offset — количество символов, на которые нужно передвинуться, whence:
- SEEK_SET — движение начинается с начала файла.
- SEEK_CUR — движение идет от текущей позиции — значение по умолчанию.
- SEEK_END — движение идет от конца файла.
Есть еще функция feof, которая говорит, дошли ли мы до конца файла или нет. Вернет true (когда достигли конца файла) или false.
//Установка курсора fseek(f, offset [, whence]) //Читаем последние 10 знаков fseek($f, -10, SEEK_END); $s = fread($f, 10); //Узнаем текущую позицию $pos = ftell($f); rewind($f)//сброс курсора feof($f) //конец файла
Файлы — прямая работа с данными
Есть удобная функция для зачитывания файла в массив — file. Получим массив, где в каждой ячейке лежит своя строка.
//Получаем содержимое файла в виде массива file(filename); //Еще один вариант прямой работы с данными //Чтение file_get_contents(filename); //Запись file_put_contents(filename, data[,flag]);// FILE_APPEND константа //Если записать массив, $array = array("I", "love", "you"); file_put_contents("test.txt",$array); //то получим "Iloveyou"
Подобная функция — file_get_contents. Передаем в качестве параметра нужный файл. Зачитывается весь файл в строку, выдается в виде одной большой строки.
Для записи в файл есть функция file_put_contents. Если указать только два обязательных параметра, то весь файл перезапишется, все старое удалится. Если мы хотим добавлять в конец файла — нужен третий параметр — константа FILE_APPEND.
Когда мы работаем с файлом через функцию fopen, если такого файла нет, то php пытается его создать (не факт, что получится создать, если нет прав на создание файла). А функция file_put_contents также, если файла нет, то php его создает. Однако функция file выдаст ошибку, если этого файла не будет (тут лучше перед вызовом этой функции использовать file_exists).
Функции file_put_contents и file_get_contents появились в PHP 5. Эти функции стали настолько популярны, что их портировали в предыдущую версию PHP 4.3.
Файлы — управление
//Копирование файла copy(source,destination); //Переименование файла rename(oldname, newname); //Удаление файла unlink(filename);
Простейшие функции — копирование, переименование, удаление. Перемещение файла можно написать так (используя функцию переименования):
rename ("folder1/example.php", "folder2/exfmple.php");