Ce face unlink
unlink este funcția PHP pentru ștergerea unui fișier. Numele vine de la comanda Unix cu același nume. Fișierul este șters definitiv, nu ajunge în coșul de gunoi.
Dacă fișierul nu există, primești un avertisment și rezultatul false. Pentru directoare folosește rmdir.
Parametri
| Parametru | Descriere |
|---|---|
$filename |
Calea fișierului de șters. |
$context |
Opțional. Un context de stream. |
Ce returnează
true dacă fișierul a fost șters, altfel false.
Exemple
Exemplul 1: Ștergerea unui fișier
<?php
file_put_contents("vechi.txt", "date vechi");
var_dump(unlink("vechi.txt"));
var_dump(file_exists("vechi.txt"));
Rezultat
bool(true)
bool(false)
Exemplul 2: Șterge doar dacă fișierul există
<?php
$fisier = "export.csv";
if (is_file($fisier)) {
unlink($fisier);
echo "Fișier șters";
} else {
echo "Nu era nimic de șters";
}
Rezultat
Nu era nimic de șters
Exemplul 3: Golirea cache-ului
<?php
mkdir("cache");
foreach (["acasa", "blog", "contact"] as $pagina) {
file_put_contents("cache/$pagina.html", "<p>$pagina</p>");
}
foreach (glob("cache/*.html") as $fisier) {
unlink($fisier);
}
echo count(glob("cache/*.html")) . " fișiere rămase";
Rezultat
0 fișiere rămase
Greșeli frecvente
- Cauți o funcție
deletesauremove. În PHP, fișierele se șterg cuunlink. - Ștergi un fișier care nu există și primești
Warning: unlink(...): No such file or directory. Verifică întâi cuis_file. - Pui numele fișierului direct din
$_GET. Un vizitator poate trimite../config.php. Foloseștebasenamepe numele primit.
Comenzi înrudite
rmdir: Șterge un director gol.file_exists: Verifică dacă un fișier sau un director există pe disc.glob: Găsește fișierele ale căror căi se potrivesc cu un tipar, de exemplu poze/*.jpg.basename: Returnează doar numele fișierului dintr-o cale, fără directoare.