PHP :: Файлы
Что такое файл?
Любой сайт в конечном итоге представляет собой обычный набор файлов. А поскольку сайты хранятся на сервере, то в PHP предусмотрен полный набор функций для работы с файлами и каталогами. Практически все они находятся в разделе «Расширения для работы с файловой системой» и позволяют выполнять с файлами такие операции, как создание, удаление, переименование, перемещение, чтение, запись, перезапись и многие другие полезные операции. Что же такое файл?
Файл (от англ. file) – это именованная область данных на носителе информации.
Имена файлов нужны для того, чтобы точно знать, к какой области данных осуществляется запрос. При этом большинство операционных систем в целях однозначности не допускает использование двух файлов с полностью идентичными именами в одном каталоге. Что касается набора символов, которые разрешается использовать для имен файлов, а также максимально допустимой длины имен файлов, то они зависят от используемой файловой системы. Например, Windows допускает использование в имени файла заглавных и строчных букв, цифр, некоторых знаков препинания и пробела, но запрещает использование символов >, <, /, \, |, ?, *, :, ". При этом максимально допустимая длина имен файлов в различных системах обычно не превышает 256 символов.
Для того, чтобы помочь системе определить тип файла и, соответственно, приложение для работы с ним, в имени файла обычно указывается его расширение, которое отделяется от остальной части имени точкой. Примерами расширений файлов могут служить: .txt – обычный текстовый файл, .html – файл, представляющий собой html-документ, .js – файл, содержащий код на языке JavaScript, .jpg – файл изображения в формате jpg и огромное число других расширений.
Что такое каталог или директория?
Когда файлов становится слишком много, возникает необходимость их упорядочивания и группировки. Для этих целей используются каталоги или директории.
Каталог или директория (от англ. directory) – это специальный объект файловой системы, который используется для упрощения организации файлов. В графическом пользовательском интерфейсе каталоги также называют папками. В любом случае каталог представляет собой файл, содержащий записи о входящих в него файлах или других каталогах.
Каталог, прямо или косвенно включающий в себя все прочие каталоги и файлы, называется корневым. Обычно для его обозначения используется слэш /. Поэтому, когда в php-скрипте на сервере требуется прописать относительный путь от корневой папки сайта, его запись следует начинать с символа слэша.
Каталог, в котором находится текущий каталог, называется родительским каталогом. При построении относительного пути родительский каталог обозначается двумя точками, соответственно путь к нему из текущего каталога будет иметь вид ../.
Что такое жесткая ссылка?
Как было сказано выше, большинство операционных систем не разрешает использование двух файлов с полностью идентичными именами в одном каталоге. В то же время вполне допустимо создавать для одного и того же файла несколько имен при помощи жестких ссылок.
Жёсткими ссылками или хардлинками (от англ. hard link) называют различные имена одного и того же файла, которые могут создаваться в пределах одного физического носителя.
После создания жесткой ссылки сказать где настоящий файл, а где хардлинк невозможно, так как они полностью равноправны. Сама же область данных существует до тех пор, пока не будут удалены полностью все имена. Кроме того, при редактировании файла через одну из ссылок на него, содержимое по другим ссылкам также изменяется.
Как следует из определения, создание жестких ссылок одного и того же файла на разных физических носителях (например, жестких дисках) невозможно. Однако данное ограничение можно обойти при помощи символических ссылок.
Что такое символическая ссылка?
Символическая ссылка или симлинк (от англ. symbolic link) – это специальный файл в файловой системе, содержащий в себе ссылку на другой файл или директорию, в том числе, и расположенный на другом физическом носителе.
Символическая ссылка занимает ровно столько места в файловой системе, сколько требуется для записи её содержимого, которое представляет собой строку, содержащую путь к определенному файлу или каталогу. Если символьная ссылка указывает на файл, который не существует, ее называют битой. При попытке обращения к файлу посредством битой ссылки обычно выводится соответствующее предупреждение.