Dans le développement et la maintenance des applications Web, la sauvegarde régulière des bases de données est une tâche importante pour garantir la sécurité des données. Les fichiers de sauvegarde de la base de données d'emballage dans les packages compressés peuvent non seulement économiser efficacement l'espace de stockage, mais également faciliter la gestion. La classe Ziparchive de PHP fournit un moyen simple et puissant de gérer les packages compressés au format .zip. Cet article présentera en détail comment compresser les sauvegardes de la base de données dans les fichiers .zip via la classe PHP Ziparchive.
Avant d'utiliser la classe Ziparchive, vous devez d'abord vous assurer que PHP a activé les extensions ZIP. Trouver et activer les éléments de configuration suivants dans le fichier php.ini:
<span class="fun">extension = zip</span>
Nous devons créer une instance ziparchive et l'utiliser pour ouvrir un nouveau fichier de lacks zippant. Voici les exemples de code associés:
<span class="fun">$ zip = new Ziparchive ();</span>
<span class="fun">$ zipname = 'Backup_'. Date ('ym-d_h-is'). '.fermeture éclair';</span>
<span class="fun">if ($ zip-> open ($ zipname, ziparchive :: Create | ziparchive :: recuser) === true) {</span>
<span class="fun">// Le code pour ajouter le fichier de sauvegarde de la base de données sera placé ici</span>
<span class="fun">$ zip-> close ();</span>
<span class="fun">} autre {</span>
<span class="fun">exit ('Impossible d'ouvrir le fichier de package zippé');</span>
Dans ce code, nous utilisons la fonction `Date ()` de PHP pour générer un nom de fichier dynamique basé sur la date et l'heure en cours, et définissez le mode d'ouverture ziparchive sur `Ziparchive :: Create | Ziparchive :: Overwrite`, ce qui signifie que si le fichier existe déjà, il sera écrasé.
Ensuite, nous ajoutons le fichier de sauvegarde de la base de données au package zippé. En prenant MySQL comme exemple, nous utilisons la commande `mysqldump` pour effectuer une sauvegarde de la base de données et ajouter le fichier de sauvegarde dans le fichier .zip:
<span class="fun">$ dbhost = 'localhost';</span>
<span class="fun">$ dbusername = 'username';</span>
<span class="fun">$ dbpassword = 'mot de passe';</span>
<span class="fun">$ dbname = 'database_name';</span>
<span class="fun">$ backupfile = 'database_backup.sql';</span>
<span class="fun">$ Command = "MySQLDump --Single-Transaction --host = $ dbhost --user = $ dbusername --password = $ dbpassword $ dbname> $ backupfile";</span>
<span class="fun">Système ($ Command);</span>
<span class="fun">$ zip-> addFile ($ backupfile);</span>
Grâce au code ci-dessus, nous sauvegardez la base de données MySQL à un fichier SQL via la commande `mysqldump`, puis ajoutant le fichier de sauvegarde au package compressé créé. Notez que le fichier de sauvegarde doit exister avant d'appeler la méthode `addFile () '.
Une fois le fichier ajouté, nous devons fermer le fichier de package ZIP et supprimer le fichier de sauvegarde temporaire. Ce qui suit est le code pertinent:
<span class="fun">$ zip-> close ();</span>
<span class="fun">Unlink ($ backupfile);</span>
<span class="fun">Echo 'La sauvegarde de la base de données a réussi! ';;</span>
Dans ce code, nous avons d'abord fermé le package zip, puis utilisé la fonction `Unlink ()` pour supprimer le fichier de sauvegarde local car il a été ajouté avec succès au package zip.
Voici un exemple de code complet qui montre comment implémenter la sauvegarde de la base de données et le compresser dans un fichier .zip:
<span class="fun">$ zip = new Ziparchive ();</span>
<span class="fun">$ zipname = 'Backup_'. Date ('ym-d_h-is'). '.fermeture éclair';</span>
<span class="fun">if ($ zip-> open ($ zipname, ziparchive :: Create | ziparchive :: recuser) === true) {</span>
<span class="fun">$ dbhost = 'localhost';</span>
<span class="fun">$ dbusername = 'username';</span>
<span class="fun">$ dbpassword = 'mot de passe';</span>
<span class="fun">$ dbname = 'database_name';</span>
<span class="fun">$ backupfile = 'database_backup.sql';</span>
<span class="fun">$ Command = "MySQLDump --Single-Transaction --host = $ dbhost --user = $ dbusername --password = $ dbpassword $ dbname> $ backupfile";</span>
<span class="fun">Système ($ Command);</span>
<span class="fun">$ zip-> addFile ($ backupfile);</span>
<span class="fun">$ zip-> close ();</span>
<span class="fun">Unlink ($ backupfile);</span>
<span class="fun">Echo 'La sauvegarde de la base de données a réussi! ';;</span>
Avec le code ci-dessus, nous pouvons facilement compresser le fichier de sauvegarde de la base de données dans le fichier .zip à l'aide de la classe PHP Ziparchive. Cette approche simplifie non seulement le processus de sauvegarde, mais rend également la gestion et le stockage des fichiers de sauvegarde plus efficaces. Vous pouvez modifier et ajuster le code en fonction de vos besoins pour vous adapter à différentes bases de données et exigences de sauvegarde.