HTML, Excel, Word, SEOPHP курс для чайников ⇒ Работа с файлами

PHP для "чайников"

Инструменты
Выбираем IDE
Выбираем Web-сервер
Выбираем СУБД
Структура языка PHP
Первый шаг
Синтаксис
Типы данных
Переменные и константы
Операторы
Выражения
Управляющие структуры
Функции
Классы
Исключения
Ошибки
Массивы
Глобальные массивы
Cookies
Сессии
Загрузка файлов
Работа с файлами
Работа с файлами на диске
Работа с данными в файле
Пример управления файлами
Работа с базами данных
Подключение
Анализ результатов
Выполнение запросов
Отключение
Пример: отслеживание пользователей
Работа в сети
Отправка почты
Безопасность
HTTP-аутентификация
Защита логином и паролем
Автоматизация
Регулярные выражения в PHP
Интеграция
PHP и JavaScript

 

Работа с файлами


Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru

PHP, как и большинство языков программирования, имеет функции для работы с файлами. Эти функции можно условно разделить на 2 группы. В первую попадают функции управления файлами и каталогами (копирование, перемещение, создание и т.д.). Ко второй группе относятся функции для работы с содержимым файлов.


Однако прежде чем рассматривать конкретные функции, необходимо рассмотреть некоторые типы и особенности серверных файловых систем. Типов всего два: Windows и Unix. К Unix-типу относятся файловые системы всех Unix-подобных ОС (Linux, FreeBSD, Ubuntu и прочие), хотя каждая и обладает своими дополнительными особенностями.


Однако большинство обычных пользователей работают под управлением ОС Windows, поэтому мы рассмотрим только основные внешние отличия файловой системы Unix, не вдаваясь глубоко в дебри.


Первое, что бросается в глаза - нет привычных букв дисков, а все пути начинаются со слеша "\".

Путь в Windows:     C:\home\users\root
Путь в Unix:        /etc/home/users/root

Второе - в путях используются только прямые слеши "/", такие же, как в URL-адресах. Помните, что привычный Windows-разделитель пути "\" (обратный слеш) используется в PHP для "экранирования" спецсимволов в строках. Поэтому, если вам нужно вставить обратный слеш в строку, - его надо удвоить или заключить в одинарные кавычки, иначе интерпретатор выдаст ошибку.

<?php
$path = 'C:\home\users\root';
или
$path = "C:\\home\\users\\root";
?>

Третья существенная особенность - имена файлов в Unix чувствительны к регистру. Это означает, что в одном каталоге можно создать несколько файлов, имена которых будут отличаться только регистром символов. Например, имена "readme.txt", "Readme.TXT" и "README.txt" - это РАЗНЫЕ файлы в Unix, но один и тот же - в Windows. Об этой особенности надо всегда помнить. Есть простое правило для начинающих, позволяющее избежать ошибок, связанных с именами файлов: всегда именуйтё файлы в нижнем регистре, а для разделения логических частей используйте точки, подчёркивания или тире. Например:

my.test.page.php

template_file.php

В принципе, можно использовать эту особенность имён файлов в практической работе (напрмер, хранить версии одного файла, просто меняя регистры букв). Но лучше избегать таких трюков, т.к. они будут работать не на всех Unix-системах, и совсем откажут при переходе на Windows-хостинг.

Как в Windows, так и в Unix пути можно указывать в полном и относительном виде. В относительном виде путь может содержать специальные управляющие символы "." (точка) и ".." (две точки). Точка обозначает текущий каталог, а две точки - предыдущий вышележащий.

Например, если у нас на сервере есть такая структура каталогов

/public
    /classes
        myclass.php
    /scripts
        myscript.php
    index.php
    utils.php

то обращения к файлам будут выгладеть следующим образом (на примере include()):

<?php
    //Подключить myclass.php из index.php
    include('./classes/myclass.php');

    //Подключить myclass.php из myscript.php
    include('./../classes/myclass.php');

    //Подключить utils.php из myscript.php
    include('./../utils.php');
?>

Префикс "." в пути можно не указывать. Следует помнить, что относительный путь всегда вычисляется начиная от файла, с которого началось исполнение, а не от текущего исполняемого. Поясню на вышерассмотренном примере. Если пользователь загрузил index.php, в котором подключен файл /scripts/myscript.php, то все относительные пути будут вычисляться относительно index.php, независимо от того, код какого файла сейчас исполняется (index.php или myscripts.php).

В PHP рекомендуется указывать относительные пути везде, где это возможно. Это значительно упрощает работу с кодом и делает код переносимым. Если все пути в проекте относительные, то для переноса проекта на другой сервер достаточно просто скопировать все каталоги по назначению и всё будет работать.

Теперь приступим к изучению функций и приёмов работы с файлами.



В начало страницы



В начало страницы