ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してzipファイルを作成する方法

PHPを使用してzipファイルを作成する方法

青灯夜游
青灯夜游オリジナル
2019-02-15 10:57:267948ブラウズ

圧縮ファイルを使用するとディスク容量を節約でき、圧縮ファイルはサイズが小さく、ネットワーク送信に便利で効率が高くなります。この記事ではPHPを使ってzip圧縮ファイルを作成する方法をご紹介しますので、ご参考になれば幸いです。

PHPを使用してzipファイルを作成する方法

PHP には、zip ファイルを簡単に作成するために使用できる ZipArchive クラスがあります。以下は、PHP で zip ファイルを作成する方法の例です。 [ビデオチュートリアルの推奨: PHP チュートリアル]

新しい zip ファイルの作成

次のコードは、新しい zip ファイルを作成します。 zip ファイル (test_new.zip) を作成し、それにいくつかのファイルを追加します。

<?php
$zip = new ZipArchive;
if ($zip->open(&#39;test_new.zip&#39;, ZipArchive::CREATE) === TRUE)
{
    // 将文件添加到zip文件
    $zip->addFile(&#39;test.txt&#39;);
    $zip->addFile(&#39;test.pdf&#39;);
 
    // 将random.txt文件添加到zip并将其重命名为newfile.txt
    $zip->addFile(&#39;random.txt&#39;, &#39;newfile.txt&#39;);
 
    // 将有指定文本的new.txt文件添加到zip文件中
    $zip->addFromString(&#39;new.txt&#39;, &#39;要添加到new.txt文件中的文本&#39;);
 
    // 关闭zip文件
    $zip->close();
}
?>

PHPを使用してzipファイルを作成する方法

コードの説明:

行 2: ZipArchive クラスのオブジェクトの作成

行 3: 使用test_new.zip というファイルを作成して開き、ファイルを追加できるようにします。フラグ ZipArchive::CREATE は、新しい zip ファイルを作成することを指定します。

行 6 と 7: zip ファイルにファイルを追加するために使用されます。

行 10:random.txt という名前のファイルを zip ファイルに追加し、zip ファイル内でその名前を newfile.txt に変更するために使用されます。

13行目: 新しいファイルnew.txtの追加に使用されます。ファイルの内容は「new.txtファイルに追加するテキスト」です。

行 16: zip ファイルを閉じて変更を保存します。

注: ファイルへの相対パスを使用すると、問題が発生することがあります。パスの使用に問題がある場合は、ファイルの絶対パスを使用することもできます。

既存の zip ファイルを上書きします。

If既存の zip ファイルを上書きしたい場合 zip ファイルの場合は、次のようなコードを使用できます。フラグ ZipArchive::OVERWRITE は、既存の zip ファイルを上書きすることを指定します。

<?php
$zip = new ZipArchive;
if ($zip->open(&#39;test_overwrite.zip&#39;, ZipArchive::OVERWRITE) === TRUE)
{
    // 将文件添加到zip文件
    $zip->addFile(&#39;test.txt&#39;);
    $zip->addFile(&#39;test.pdf&#39;);
 
    // 关闭zip文件
    $zip->close();
}
?>

PHPを使用してzipファイルを作成する方法

コードの説明

このコードはファイル test_overwrite.zip を作成します。ファイルがすでに存在する場合、ファイルはこの新しいファイルによって上書きされます。

新しい zip ファイルを作成し、指定したフォルダーにファイルを追加します

<?php
$zip = new ZipArchive;
if ($zip->open(&#39;test_folder.zip&#39;, ZipArchive::CREATE) === TRUE)
{
    // 将文件添加到zip文件中的demo_folder文件夹内
    $zip->addFile(&#39;text.txt&#39;, &#39;demo_folder/test.txt&#39;);
    $zip->addFile(&#39;test.pdf&#39;, &#39;demo_folder/test.pdf&#39;);
 
    // 将random.txt文件添加到zip文件中的demo_folder文件夹内,并重命名为newfile.txt
    $zip->addFile(&#39;random.txt&#39;, &#39;demo_folder/newfile.txt&#39;);
 
    //  将有指定内容的new.txt添加到zip文件中的demo_folder文件夹
    $zip->addFromString(&#39;demo_folder/new.txt&#39;, &#39;要添加到new.txt文件中的文本&#39;);
 
    // 关闭zip文件
    $zip->close();
}
?>

PHPを使用してzipファイルを作成する方法

Code説明

上記のコードは、zip ファイル内のさまざまなファイルを demo_folder フォルダーに追加します。

addfile 関数の 2 番目のパラメーターを使用して、ファイルを新しいファイル フォルダーに保存できます。

addFromString 関数の最初のパラメーターは、ファイルを新しいフォルダーに保存するために使用できます。

新しい zip ファイルを作成し、そのファイルを別のフォルダーに追加します。フォルダー##

<?php
$zip = new ZipArchive;
if ($zip->open(&#39;test_folder_change.zip&#39;, ZipArchive::CREATE) === TRUE)
{
    // 将文件添加到zip文件
    $zip->addFile(&#39;text.txt&#39;, &#39;demo_folder/test.txt&#39;);
    $zip->addFile(&#39;test.pdf&#39;, &#39;demo_folder1/test.pdf&#39;);
 
    // 关闭zip文件
    $zip->close();
}
?>

PHPを使用してzipファイルを作成する方法

5-PHPを使用してzipファイルを作成する方法

5-PHPを使用してzipファイルを作成する方法

コードの説明

zip ファイル内の test.txt ファイルを [demo_folder] フォルダーに保存し、test.pdf ファイルを [demo_folder1] フォルダーに保存します。

すべてのファイルを含む zip ファイルを作成します。ディレクトリ

<?php
$zip = new ZipArchive;
if ($zip->open(&#39;test_dir.zip&#39;, ZipArchive::OVERWRITE) === TRUE)
{
    if ($handle = opendir(&#39;demo_folder&#39;))
    {
        // 添加目录中的所有文件
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != ".." && !is_dir(&#39;demo_folder/&#39; . $entry))
            {
                $zip->addFile(&#39;demo_folder/&#39; . $entry);
            }
        }
        closedir($handle);
    }
 
    $zip->close();
}
?>

PHPを使用してzipファイルを作成する方法

コードの説明

第 5 章 - 16 行目: ディレクトリを開いて zip を作成します。ディレクトリ内のすべてのファイルを含むファイル

# 5 行目: ディレクトリを開きます

8 行目: ディレクトリ内の各ファイルの名前を取得します

10 行目: 「」をスキップします。 " と ".." およびその他のディレクトリ

12 行目: zip ファイルにファイルを追加

15 行目: ディレクトリを閉じる

#18 行目: zip ファイルを閉じる

複数のディレクトリのすべてのファイルを含む zip ファイルを作成します

次のコードは、これらのディレクトリ内のさまざまなフォルダーとファイルを zip ファイルに追加します

<?php
$zip = new ZipArchive;
if ($zip->open(&#39;test_files_dirs.zip&#39;, ZipArchive::OVERWRITE) === TRUE)
{
    // 添加 directory1
    if ($handle = opendir(&#39;demo_folder/directory1/&#39;))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile(&#39;demo_folder/directory1/&#39; . $entry);
            }
        }
        closedir($handle);
    }
 
    // 添加 directory2
    if ($handle = opendir(&#39;demo_folder/directory2/&#39;))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile(&#39;demo_folder/directory2/&#39; . $entry);
            }
        }
        closedir($handle);
    }
 
    // 添加 directory3
    if ($handle = opendir(&#39;demo_folder/directory3/&#39;))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile(&#39;demo_folder/directory3/&#39; . $entry);
            }
        }
        closedir($handle);
    }
    $zip->close();
}
?>

PHPを使用してzipファイルを作成する方法

7-PHPを使用してzipファイルを作成する方法

7-PHPを使用してzipファイルを作成する方法

##コードの説明7-PHPを使用してzipファイルを作成する方法

行 6 ~ 42: ディレクトリ directory1、directory2、および directory3 内のすべてのファイルを、ディレクトリ内の zip ファイル内の対応するファイルに追加します。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がPHPを使用してzipファイルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。