Справка веб-мастера     Справочник web-мастера и программиста
  PHP       Интернет       Беб-дизайн       Безопасность       Javascript     Информеры     Game      
          Игра шарики





Жесткие и символические ссылки

Символические ссылки

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

Символическая ссылка - это просто бинарный файл специального вида, который содержит ссылку на основной файл. При обращении к такому файлу (например, открытию его на чтение) система оределяет, к какому объекту на самом деле запрашивается доступ, и его обеспечивает. Это означает, что мы можем использовать символические ссылки точно так же, как и обычные файлы.

symlink
Создает символическую ссылку.

Синтаксис :
bool symlink(string $target, string $link)

Эта функция создает символическую ссылку с именем $link на объект (файл или каталог), заданную в $target. В случае "провала" функция возвращает false.

Жесткие ссылки

Создание символической ссылки - не единственный способ задать для одного файла несколько имен. Главный недостаток символических ссылок - существование основного имени файла, на которое все и ссылаются. Попробуйте удалить этот файл - и вся паутина ссылок развалиться на куски. Есть и другой недостаток: открытие файла, на который указывает ссылка, происходит несколько медленнее, т.к. системе нужно проанализировать содержимое ссылки и установить связь с настоящим файлом. Особенно это чувствуется, если одна ссылка указывает на другую, а та на третью и т.д.

Жесткие ссылки позволяют иметь для одного файла несколько равноправных имен, причем доступ по ним осуществляется одинаково быстро. При этом, если одно из таких имен будет удалено, то сам файл удалиться только в том случае, если данное имя было последним, и других имен у файла нет.

Зарегестрировать новое имя у файла (то есть создать для него жесткую ссылку) можно с помощью функции link(). Ее синтаксис идеентичен функции symlink(), и работает она по тем же правилам, но создает не символическую, а жесткую ссылку.

link
Создает жесткую ссылку.

Синтаксис :
bool link(string $target, string $link)

Эта функция создает жесткую ссылку с именем $link на объект (файл или каталог), заданную в $target. В случае "провала" функция возвращает false.

Функции PHP для работы с ссылками

readlink
Возвращает имя основного файла.

Синтаксис :
string readlink(string $linkname)

Возвращает имя основного файла, с которым связан его синоним $linkname. Это полезно, если вы хотите узнать основное имя файла, чтобы удалить сам файл, а не ссылку на него. В случае ошибки функция возвращает значение "ложь".

lstat
Функция собирает вместе всю информацию, выдаваемую операционной системой для указанной ссылки, и возвращает ее в виде массива.

Синтаксис :
array lstat(string $filename)

Функция аналогична вызову stat(), за исключением того, что если $filename задает не файл, а символическую ссылку, будет возвращена информация именно об этой ссылке (а не о файле, на который она указывает, как это делает stat()).







  Copyright © King-dom.ru, 2008-2013       Разработка сайта SoftHolm.com