Maison php教程 php手册 如何用PHP脚本和PEAR类创建ZIP档案文件

如何用PHP脚本和PEAR类创建ZIP档案文件

Jun 21, 2016 am 08:57 AM
archive file files nbsp zip

  在开发Web应用程序时,很有可能您会遇到不同格式的文件——CSV数据、密码文件、XML编码的内容和不同形式的二进制的数据。您的PHP脚本将需要频繁地和这些文件交互,从中读取数据和将数据写入其中。由于有这么些格式的文件要处理,所以您就不要意外PHP中有那么多种类型的内置函数和外部的库,用来连接和使用几乎所有您能说出名称的文件格式。

  这篇指南就是关于这样一种文件格式的,可能应用程序开发者几乎每天都会遇到这种文件:ZIP格式。一般这种格式是用来通过电子邮件和远程连接传输文件的,能够将多个文件压缩到一个档案文件中,因此,减少了文件的硬盘占据空间,并且能够更容易地移动它们。PHP通过它的ZZipLib插件和PEAR的Archive_Zip类都可以读取和创建这些ZIP文件。

  我将假设您已经有了正常运行的Apache,安装了PHP,并且PEAR Archive_Zip class类已经正确安装了。

  注意:您可以直接从网上安装PEAR Archive_Zip程序包,要么下载它,还可以利用提供的指示。

  创建ZIP档案文件

  让我们从一个简单的例子开始:动态地创建一个包括几个其他文件的ZIP档案文件。以列表A中的脚本开始。

列表A

include ('Archive/Zip.php');        // imports

$obj = new Archive_Zip('test.zip'); // name of zip file

$files = array('mystuff/ad.gif',
               'mystuff/alcon.doc',
               'mystuff/alcon.xls');   // files to store

if ($obj->create($files)) {
    echo 'Created successfully!';
} else {
    echo 'Error in file creation';
}
?>

  这个脚本非常简单,但是值得仔细看一下:

  首先,第一步是创建一个Archive_Zip类的实例,然后用将要创建的档案文件的路径和名称将其初始化。在这个例子中,档案文件被命名为test.zip,位于当前目录下。

  接着,初始化一个数组,列出将要被压缩的文件,和它们在硬盘中的位置一起保存其中;这些位置用绝对或相对术语列入,但是,一个关键的要考虑的事项是脚本对那些文件或磁盘的位置要有读取的权限。

  最后,用create()方法通过压缩和合并指定的文件来实际构建档案文件。这个方法接受文件列表作为输入,然后返回一个布尔逻辑值指示档案文件是否被成功创建。注意脚本在文件被创建的目录下必须有写入特权是非常重要的,否则create()方法将失败;这是一个普遍的,也让大部分新手失败的错误。

  现在,在修改了源文件列表和目标文件位置来反映您的本地系统配置之后,试着运行上面的脚本。如果一切顺利的话,Archive_Zip应该可以找到您所列出的、并压缩到名为test.zip的ZIP档案文件中的文件。

  查看ZIP档案文件的内容

  那么怎么样看到现有的ZIP档案文件中的内容呢?Archive_Zip lets让您通过它的listContent()方法也可以做到这一点。下面是一个例子(列表B):

列表B

include ('Archive/Zip.php');        // imports

$obj = new Archive_Zip('test.zip'); // name of zip file

$files = $obj->listContent();       // array of file information

foreach ($files as $f) {
    foreach ($f as $k => $v) {
        echo "$k: $v\n";
    }
    echo "\n";
}
?>

  listContent()的输出是一个由数组组成的结构数组,每一个数组元素代表档案文件中的一个单独文件。通常,每一个元素中保存有相关的信息,例如对应文件的名字、它的索引位置、状态、大小(压缩后和压缩前的)和最近一次修改的时间。用一个循环可以很容易地将这些信息提取出来,还可以像列表B那样,重定它的格式,使其更好传输。下面是输出的一个示例(列表C):

列表C

filename: mystuff/alcon.xls
stored_filename: mystuff/alcon.xls
size: 113664
compressed_size: 35902
mtime: 1141996836
comment:
folder:
index: 0
status: ok

  向现有的ZIP档案文件中添加新文件

  Archive_Zip类的一个有意思的特性就是它可以通过add()方法向现有的档案文件中添加新的文件。为了说明这一点,让我们回到test.zip,尝试对它添加新文件(列表D):

列表D

include ('Archive/Zip.php');        // imports

if (file_exists('test.zip')) {
    $obj = new Archive_Zip('test.zip'); // name of zip file
} else {
    die('File does not exist');
}

$files = array('otherstuff/montecarlo.png');   // additional files to store

if ($obj->add($files)) {
    echo 'Added successfully!';
} else {
    echo 'Error in file addition';
}
?>

  正如您所看到的那样,向一个现有的档案文件中添加新文件的程序和创建一个新的档案文件十分相似:初始化一个新的Archive_Zip对象指向问号代表的档案文件,创建一个数组代表将要添加的文件的列表,然后将这个数组输入add()方法。和create()方法一样,add()返回一个布尔逻辑信号来指示添加是否成功。和前面一样,一个主要的问题就是别忘了要有足够的权限:记得确保脚本有适当的权限来读取源文件,并将新压缩的档案文件写回到硬盘中。

  从现有的ZIP档案文件中删除文件

  和添加文件一样,您也可以删除文件。Archive_Zip类具有delete()方法,让您能够从现有的档案文件中移除文件。列表E说明了这一点。.

列表E

include ('Archive/Zip.php');        // imports

if (file_exists('test.zip')) {
    $obj = new Archive_Zip('test.zip'); // name of zip file
} else {
    die('File does not exist');
}

$files = array('mystuff/ad.gif', 'otherstuff/montecarlo.png');   // files to delete

if ($obj->delete(array('by_name' => $files))) {
    echo 'Deleted successfully!';
} else {
    echo 'Error in file deletion';     
}
?>

  在这里,创建了一个待删除文件的数组,然后将其输入delete()方法。注意delete()调用中的特殊参数“by_name”:这告诉Archive_Zip只删除那些与文件名精确匹配的文件。如果删除成功,delete()方法返回真。

  除了这种形式的有选择的删除之外,delete()方法也支持对与特定类型或正则表达式相匹配文件的大规模的摧毁。利用“by_ereg”或“by_preg”参数,Perl和PHP的正则表达式都支持。列表F是一个例子,用来说明怎样用这种方法,通过利用Perl的正则表达式来删除一个档案文件中所有的*.doc文件。

列表F

include ('Archive/Zip.php');        // imports

if (file_exists('test.zip')) {
    $obj = new Archive_Zip('test.zip'); // name of zip file
} else {
    die('File does not exist');
}

if ($obj->delete(array('by_preg' => "/.*doc$/"))) { // all DOC files
    echo 'Deleted successfully!';
} else {
    echo 'Error in file deletion';    
}
?>

  如以上的例子所示,PEAR的Archive_Zip类用途很多,只需要几行代码,就使您能够执行一些相当复杂的与ZIP文件的交互。但愿上面的示例脚本能够激发起您的灵感,告诉您如何在您的日常开发活动中使用这个类,并让您对用它进行试验产生兴趣。祝您编程开心!

  请作者联系本站,及时附注您的姓名。联系邮箱:edu#chinaz.com(把#改为@)。



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution : Votre organisation vous demande de modifier votre code PIN Solution : Votre organisation vous demande de modifier votre code PIN Oct 04, 2023 pm 05:45 PM

Le message « Votre organisation vous a demandé de modifier votre code PIN » apparaîtra sur l'écran de connexion. Cela se produit lorsque la limite d'expiration du code PIN est atteinte sur un ordinateur utilisant les paramètres de compte basés sur l'organisation, sur lesquels ils contrôlent les appareils personnels. Cependant, si vous configurez Windows à l'aide d'un compte personnel, le message d'erreur ne devrait idéalement pas apparaître. Même si ce n'est pas toujours le cas. La plupart des utilisateurs qui rencontrent des erreurs déclarent utiliser leur compte personnel. Pourquoi mon organisation me demande-t-elle de modifier mon code PIN sous Windows 11 ? Il est possible que votre compte soit associé à une organisation et votre approche principale devrait être de le vérifier. Contacter votre administrateur de domaine peut vous aider ! De plus, des paramètres de stratégie locale mal configurés ou des clés de registre incorrectes peuvent provoquer des erreurs. Tout de suite

Comment ajuster les paramètres de bordure de fenêtre sous Windows 11 : modifier la couleur et la taille Comment ajuster les paramètres de bordure de fenêtre sous Windows 11 : modifier la couleur et la taille Sep 22, 2023 am 11:37 AM

Windows 11 met au premier plan un design frais et élégant ; l'interface moderne vous permet de personnaliser et de modifier les moindres détails, tels que les bordures des fenêtres. Dans ce guide, nous discuterons des instructions étape par étape pour vous aider à créer un environnement qui reflète votre style dans le système d'exploitation Windows. Comment modifier les paramètres de bordure de fenêtre ? Appuyez sur + pour ouvrir l'application Paramètres. WindowsJe vais dans Personnalisation et clique sur Paramètres de couleur. Changement de couleur Paramètres des bordures de fenêtre Fenêtre 11" Largeur = "643" Hauteur = "500" > Recherchez l'option Afficher la couleur d'accent sur la barre de titre et les bordures de fenêtre et activez le commutateur à côté. Pour afficher les couleurs d'accent dans le menu Démarrer et la barre des tâches Pour afficher la couleur du thème dans le menu Démarrer et la barre des tâches, activez Afficher le thème dans le menu Démarrer et la barre des tâches.

Comment changer la couleur de la barre de titre sous Windows 11 ? Comment changer la couleur de la barre de titre sous Windows 11 ? Sep 14, 2023 pm 03:33 PM

Par défaut, la couleur de la barre de titre sous Windows 11 dépend du thème sombre/clair que vous choisissez. Cependant, vous pouvez le changer pour la couleur de votre choix. Dans ce guide, nous discuterons des instructions étape par étape sur trois façons de le modifier et de personnaliser votre expérience de bureau pour la rendre visuellement attrayante. Est-il possible de changer la couleur de la barre de titre des fenêtres actives et inactives ? Oui, vous pouvez modifier la couleur de la barre de titre des fenêtres actives à l'aide de l'application Paramètres, ou vous pouvez modifier la couleur de la barre de titre des fenêtres inactives à l'aide de l'Éditeur du Registre. Pour connaître ces étapes, passez à la section suivante. Comment changer la couleur de la barre de titre sous Windows 11 ? 1. Appuyez sur + pour ouvrir la fenêtre des paramètres à l'aide de l'application Paramètres. WindowsJe vais dans "Personnalisation" puis

Problèmes d'erreur OOBELANGUAGE dans la réparation de Windows 11/10 Problèmes d'erreur OOBELANGUAGE dans la réparation de Windows 11/10 Jul 16, 2023 pm 03:29 PM

Voyez-vous « Un problème est survenu » avec l'instruction « OOBELANGUAGE » sur la page Windows Installer ? L'installation de Windows s'arrête parfois à cause de telles erreurs. OOBE signifie expérience hors des sentiers battus. Comme l'indique le message d'erreur, il s'agit d'un problème lié à la sélection de la langue OOBE. Il n'y a rien à craindre, vous pouvez résoudre ce problème avec une astucieuse modification du registre à partir de l'écran OOBE lui-même. Solution rapide – 1. Cliquez sur le bouton « Réessayer » en bas de l'application OOBE. Cela permettra de poursuivre le processus sans autre problème. 2. Utilisez le bouton d'alimentation pour forcer l'arrêt du système. Après le redémarrage du système, OOBE devrait continuer. 3. Déconnectez le système d'Internet. Terminez tous les aspects d'OOBE en mode hors ligne

Comment activer ou désactiver les aperçus miniatures de la barre des tâches sur Windows 11 Comment activer ou désactiver les aperçus miniatures de la barre des tâches sur Windows 11 Sep 15, 2023 pm 03:57 PM

Les miniatures de la barre des tâches peuvent être amusantes, mais elles peuvent aussi être distrayantes ou ennuyeuses. Compte tenu de la fréquence à laquelle vous survolez cette zone, vous avez peut-être fermé plusieurs fois des fenêtres importantes par inadvertance. Un autre inconvénient est qu'il utilise plus de ressources système, donc si vous cherchez un moyen d'être plus efficace en termes de ressources, nous allons vous montrer comment le désactiver. Cependant, si vos spécifications matérielles peuvent le gérer et que vous aimez l'aperçu, vous pouvez l'activer. Comment activer l’aperçu miniature de la barre des tâches dans Windows 11 ? 1. Utilisez l'application Paramètres pour appuyer sur la touche et cliquez sur Paramètres. Windows, cliquez sur Système et sélectionnez À propos. Cliquez sur Paramètres système avancés. Accédez à l'onglet Avancé et sélectionnez Paramètres sous Performances. Sélectionnez "Effets visuels"

Afficher le guide de mise à l'échelle sur Windows 11 Afficher le guide de mise à l'échelle sur Windows 11 Sep 19, 2023 pm 06:45 PM

Nous avons tous des préférences différentes en matière de mise à l'échelle de l'affichage sur Windows 11. Certaines personnes aiment les grandes icônes, d’autres les petites. Cependant, nous sommes tous d’accord sur le fait qu’il est important d’avoir la bonne échelle. Une mauvaise mise à l'échelle des polices ou une mise à l'échelle excessive des images peuvent nuire à la productivité lorsque vous travaillez. Vous devez donc savoir comment la personnaliser pour tirer le meilleur parti des capacités de votre système. Avantages du zoom personnalisé : Il s'agit d'une fonctionnalité utile pour les personnes qui ont des difficultés à lire du texte à l'écran. Cela vous aide à voir plus sur l’écran à la fois. Vous pouvez créer des profils d'extension personnalisés qui s'appliquent uniquement à certains moniteurs et applications. Peut aider à améliorer les performances du matériel bas de gamme. Cela vous donne plus de contrôle sur ce qui est sur votre écran. Comment utiliser Windows 11

10 façons de régler la luminosité sous Windows 11 10 façons de régler la luminosité sous Windows 11 Dec 18, 2023 pm 02:21 PM

La luminosité de l’écran fait partie intégrante de l’utilisation des appareils informatiques modernes, en particulier lorsque vous regardez l’écran pendant de longues périodes. Il vous aide à réduire la fatigue oculaire, à améliorer la lisibilité et à visualiser le contenu facilement et efficacement. Cependant, en fonction de vos paramètres, il peut parfois être difficile de gérer la luminosité, notamment sous Windows 11 avec les nouvelles modifications de l'interface utilisateur. Si vous rencontrez des difficultés pour régler la luminosité, voici toutes les manières de gérer la luminosité sous Windows 11. Comment modifier la luminosité sous Windows 11 [10 méthodes expliquées] Les utilisateurs d'un seul moniteur peuvent utiliser les méthodes suivantes pour régler la luminosité sous Windows 11. Cela inclut les systèmes de bureau utilisant un seul moniteur ainsi que les ordinateurs portables. Commençons. Méthode 1 : Utiliser le Centre d'action Le Centre d'action est accessible

Comment désactiver l'authentification de navigation privée pour iPhone dans Safari ? Comment désactiver l'authentification de navigation privée pour iPhone dans Safari ? Nov 29, 2023 pm 11:21 PM

Dans iOS 17, Apple a introduit plusieurs nouvelles fonctionnalités de confidentialité et de sécurité dans son système d'exploitation mobile, dont la possibilité d'exiger une authentification à deux facteurs pour les onglets de navigation privée dans Safari. Voici comment cela fonctionne et comment le désactiver. Sur un iPhone ou un iPad exécutant iOS 17 ou iPadOS 17, le navigateur d'Apple nécessite désormais une authentification Face ID/Touch ID ou un mot de passe si un onglet de navigation privée est ouvert dans Safari, puis quittez la session ou l'application pour y accéder à nouveau. En d'autres termes, si quelqu'un met la main sur votre iPhone ou iPad alors qu'il est déverrouillé, il ne pourra toujours pas consulter votre vie privée sans connaître votre mot de passe.

See all articles