Lý do tôi viết bài này dùng khi trường hợp các bạn muốn backup source website nhưng không có tài khoản host và chỉ có tài khoản FTP. Thông thường chúng ta củng có thể tải source bằng phần mềm thông qua FTP nhưng sẽ có 1 số vấn đề sau đó là:
+ FTP tải từng file nên rất dễ bị mất file hoặc thiếu file.
+ Do mạng. Mạng yếu mà tải bằng FTP thì có tức chết dòm nó load từng file mà muốn đập cái máy (tôi đã từng).
Vô nội dung chính cơ cấu backup sẽ hoạt động như sau:
Đầu tiên các bạn cần tải file backup lên sau đó chạy với đường dẫn đến file đó trên trình duyệt nó sẽ nén source của bạn lại và tải về cho bạn source website dưới dạng file zip. Thế là xong.
Mình đã test trên 1 vài trang và chưa gặp sự cố nào xãy ra :)))
Source file backup:
<?php if(isset($_POST['folder_zip'])): $time = (int)$_POST['folder_zip']; $namezip = 'backup'.time().'.zip'; ini_set('max_execution_time', $time ); $zip = new ZipArchive(); $zip->open( $namezip , ZipArchive::CREATE | ZipArchive::OVERWRITE); if ($handle = opendir('.')) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != ".." && !is_dir($entry)) { $filePath = realpath($entry); $relativePath = substr($filePath,0 - strlen($entry)); $zip->addFile($filePath, $relativePath); }elseif($entry != "." && $entry != ".." && is_dir($entry)){ $rootPath = realpath($entry); $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($rootPath), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($files as $name => $file) { if (!$file->isDir()) { $filePath = $file->getRealPath(); $relativePath = $entry."\\".substr($filePath, strlen($rootPath) + 1); $zip->addFile($filePath, $relativePath); } } } } closedir($handle); } $zip->close(); header('Location:'.$namezip); endif; ?> <form action="" method="post"> <input type="number" name="folder_zip" value="<?php // echo $_POST['folder_zip']; ?>"> <button type="submit">Submit</button> </form>
Cái này chủ yếu là chức năng nên mình cũng không trang trí gì cho lung linh lắm.
Nếu có thắc mắc hay muốn đóng góp ý kiến thì bình luận bên dưới nhé. Mình rất thích các ý kiến có tính xây dựng.
Chúc các bạn thành công !
-
Tags:
- Php
27 thoughts on “Backup mã nguồn, files, folders bằng php”
Comments are closed.