rename în PHP

Redenumește sau mută un fișier ori un director.

Sintaxă
rename(string $from, string $to, $context = null): bool

Ce face rename

rename schimbă numele unui fișier sau director. Dacă noua cale este în alt director, fișierul este mutat acolo. Funcționează și între discuri diferite.

Atenție: pe Linux și macOS, dacă destinația este un fișier care există deja, acesta este înlocuit fără niciun avertisment.

Parametri

Parametru Descriere
$from Calea actuală.
$to Calea nouă. Directorul de destinație trebuie să existe.
$context Opțional. Un context de stream.

Ce returnează

true la succes, false la eroare.

Exemple

Exemplul 1: Redenumirea unui fișier

<?php
file_put_contents("ciorna.txt", "Articol nou");

rename("ciorna.txt", "articol-final.txt");

var_dump(file_exists("ciorna.txt"));
var_dump(file_exists("articol-final.txt"));

Rezultat

bool(false)
bool(true)

Exemplul 2: Mutarea într-un alt director

<?php
mkdir("arhiva");
file_put_contents("factura-1024.pdf", "...");

rename("factura-1024.pdf", "arhiva/factura-1024.pdf");

print_r(array_values(array_diff(scandir("arhiva"), [".", ".."])));

Rezultat

Array
(
    [0] => factura-1024.pdf
)

Exemplul 3: Destinația existentă este înlocuită

<?php
file_put_contents("a.txt", "conținut nou");
file_put_contents("b.txt", "conținut vechi");

rename("a.txt", "b.txt");
echo file_get_contents("b.txt");

Rezultat

conținut nou

Greșeli frecvente

  • Directorul de destinație nu există și primești No such file or directory. Creează-l întâi cu mkdir.
  • Suprascrii din greșeală un fișier important. Verifică cu file_exists($to) înainte de rename.

Comenzi înrudite

  • copy: Copiază un fișier într-o locație nouă.
  • unlink: Șterge un fișier de pe disc.
  • mkdir: Creează un director nou, opțional cu toate directoarele părinte care lipsesc.
  • move_uploaded_file / is_uploaded_file: Mută un fișier încărcat printr-un formular în locul lui definitiv de pe server.