شرح صفوف ومحتوى الفقرة
استخدم الدالة copy() لإنشاء نسخة مطابقة من الملف في مسار احتياطي، وrename() لنقل الملف أو استبداله ذرياً.
- تنسخ الدالة
copy($source, $dest)محتوى الملف بالكامل وتستبدل الملف الهدف$destإذا كان موجوداً مسبقاً. - تُعيد الدالة
rename($oldPath, $newPath)تسمية الملف أو تنقله بين المجلدات على نفس نظام الملفات كعملية ذرية (Atomic). - الكتابة في ملف مؤقت أولاً ثم استدعاء
rename($tmpFile, $liveFile)تضمن عدم قراءة أي مستخدم لملف غير مكتمل الكتابة.
تنسخ copy() المسودة إلى $bak، وتنقل rename() الملف الأصلي إلى $live بحيث يختفي مسار المسودة القديم.
PHP
<?php
$dir = sys_get_temp_dir();
$src = "$dir/ct_draft.txt";
$bak = "$dir/ct_backup.txt";
$live = "$dir/ct_live.txt";
file_put_contents($src, "v2.0");
copy($src, $bak);
rename($src, $live);
echo "Live: " . file_get_contents($live) . " | Draft exists: " . (file_exists($src) ? 'yes' : 'no') . "\n";
unlink($bak);
unlink($live);