jiangaimin
V2EX  ›  PHP

PHP 有哪些现成的库可以读取 rar、7z、gz 这类压缩包的文件信息?

  •  
  •   jiangaimin · Oct 3, 2023 · 2300 views
    This topic created in 968 days ago, the information mentioned may be changed or developed.
    1. php 我知道有个 ziparchive 类可以读取 zip 压缩包文件里面的文件列表信息。比如可以列出压缩包里面的所有文件、文件的大小等。
    2. 我现在想用 php 读取 rar 、7z 、gz 这种压缩包里面的文件信息,就像 ziparchive 那样。请问有哪些现成的库可以用呢?希望大家说一下,谢谢!
    2 replies    2023-10-03 12:43:52 +08:00
    b4115Z4mRAz9P8EA
        1
    b4115Z4mRAz9P8EA  
       Oct 3, 2023
    对 PHP 读取压缩包文件有几个常用的库:

    RarArchive - 用于读取 RAR 压缩文件,可以获取压缩包内文件的信息。
    PHP Zip - PHP 的标准库,用于读取 ZIP 压缩文件。
    PharData - PHP 的标准库,用于读取各种压缩格式如 tar 、gz 、bz2 等。
    Zend\Archive - Zend 框架的压缩组件,支持各种格式的压缩包。
    patchwork\jsqueeze - 一个第三方库,支持多种压缩格式。
    使用方式:

    php

    ```
    // 读取 RAR 示例:
    $rar = RarArchive::open('test.rar');
    foreach ($rar as $entry) {
    echo $entry->getName() . PHP_EOL;
    }

    // 读取 ZIP 示例:
    $zip = new ZipArchive();
    if ($zip->open('test.zip') === TRUE) {
    for($i = 0; $i < $zip->numFiles; $i++) {
    echo $zip->getNameIndex($i) . PHP_EOL;
    }
    $zip->close();
    }
    ```
    主要是通过相应的库打开/解析压缩包,然后遍历获取文件信息即可。需要注意不同格式压缩包的读取库稍有不同。
    ysc3839
        2
    ysc3839  
       Oct 3, 2023 via Android
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1016 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:33 · PVG 06:33 · LAX 15:33 · JFK 18:33
    ♥ Do have faith in what you're doing.