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.';
}