symlink în PHP

Directoare și căi PHP 4+ (pe Windows: PHP 5.3+)

Creează o legătură simbolică (o scurtătură) către un fișier sau un director.

Sintaxă
symlink(string $target, string $link): bool

Ce face symlink

O legătură simbolică este un fișier special care conține doar calea către altă locație. Programele care o deschid ajung de fapt la țintă. Se folosește des la publicarea unui site: current indică spre ultima versiune, iar schimbarea versiunii înseamnă doar refacerea legăturii.

Ținta nu trebuie să existe. Dacă lipsește, legătura este „ruptă”: is_link spune true, dar file_exists spune false.

Parametri

Parametru Descriere
$target Calea spre care indică legătura. O cale relativă se calculează față de directorul legăturii.
$link Calea legăturii create.

Ce returnează

true la succes, false (cu avertisment) la eroare, de exemplu dacă legătura există deja.

Exemple

Exemplul 1: Scurtătură către versiunea curentă

<?php
mkdir("versiuni/v2", 0777, true);
file_put_contents("versiuni/v2/versiune.txt", "Versiunea 2");

symlink("versiuni/v2", "curent");

echo file_get_contents("curent/versiune.txt") . "\n";
var_dump(is_link("curent"));

Rezultat

Versiunea 2
bool(true)

Exemplul 2: Legătură ruptă

<?php
symlink("lipsa.txt", "legatura");

var_dump(is_link("legatura"));
var_dump(file_exists("legatura"));

Rezultat

bool(true)
bool(false)

Greșeli frecvente

  • Inversezi parametrii. Primul este ținta (ce există), al doilea este numele legăturii noi.
  • Creezi legătura peste una existentă și primești symlink(): File exists. Șterge-o întâi cu unlink.

Comenzi înrudite

  • readlink: Returnează calea spre care indică o legătură simbolică.
  • is_link: Verifică dacă o cale este o legătură simbolică.
  • link: Creează o legătură fizică (hard link): un al doilea nume pentru același fișier.
  • unlink: Șterge un fișier de pe disc.