copy în PHP

Copiază un fișier într-o locație nouă.

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

Ce face copy

copy face o copie a fișierului. Originalul rămâne neschimbat. Dacă destinația există deja, este suprascrisă.

Sursa poate fi și o adresă web (https://...), dacă serverul permite allow_url_fopen. Pentru directoare întregi nu există o funcție gata făcută: copiezi fișier cu fișier.

Parametri

Parametru Descriere
$from Fișierul sursă.
$to Calea copiei. Directorul de destinație trebuie să existe.
$context Opțional. Un context de stream, de exemplu pentru o sursă HTTP.

Ce returnează

true la succes, false la eroare.

Exemple

Exemplul 1: Copie de siguranță

<?php
file_put_contents("config.ini", "debug = off");
mkdir("backup");

copy("config.ini", "backup/config.ini");

echo file_get_contents("backup/config.ini") . "\n";
var_dump(file_exists("config.ini"));

Rezultat

debug = off
bool(true)

Exemplul 2: Copie cu data în nume

<?php
file_put_contents("baza.sql", "CREATE TABLE ...");

$copie = "baza-" . date("Y-m-d", mktime(0, 0, 0, 10, 19, 2026)) . ".sql";
if (copy("baza.sql", $copie)) {
    echo "Copie creată: $copie";
}

Rezultat

Copie creată: baza-2026-10-19.sql

Greșeli frecvente

  • Dai un director ca destinație (copy("a.txt", "backup/")). Destinația trebuie să fie calea completă a fișierului nou: "backup/a.txt".
  • Încerci să copiezi un director cu copy. Funcția lucrează doar cu fișiere.

Comenzi înrudite

  • rename: Redenumește sau mută un fișier ori un director.
  • file_exists: Verifică dacă un fișier sau un director există pe disc.
  • mkdir: Creează un director nou, opțional cu toate directoarele părinte care lipsesc.