rename

funkcja

Zmienia nazwę lub przenosi plik albo katalog. Działa też między katalogami na tym samym systemie plików. Zwraca bool.

rename(string $from, string $to, ?resource $context = null): bool

rename zmienia nazwę pliku lub katalogu wskazanego przez $from na $to. Jeśli $to prowadzi do innego katalogu (na tym samym wolumenie), plik zostaje faktycznie przeniesiony. Gdy $to jest istniejącym plikiem, zostanie on nadpisany. Operacja jest atomowa na większości systemów uniksowych, co czyni ją bezpieczną do zastępowania plików w produkcji (np. przy wdrożeniach). Między różnymi systemami plików rename może się nie powieść — wtedy użyj copy + unlink.

Bezpieczeństwo: nie buduj ścieżek $from ani $to na podstawie niezaufanych danych — umożliwia to atak path-traversal prowadzący do nadpisania lub przemieszczenia dowolnych plików serwera.

<?php
declare(strict_types=1);

$stara = __DIR__ . '/raport_roboczy.txt';
$nowa  = __DIR__ . '/archiwum/raport_2024.txt';

$sukces = rename($stara, $nowa);

if ($sukces) {
    echo 'Plik został przeniesiony i zmieniono jego nazwę.';
} else {
    echo 'Nie udało się przenieść pliku.';
}