php – 在多卷存档上扫描.rar文件内容条目
发布时间:2020-12-13 22:33:52 所属栏目:PHP教程 来源:网络整理
导读:我正在玩php rar http://www.php.net/manual/en/intro.rar.php 目标: 仅从第一个卷收集多卷rar存档的文件(名称)信息. 示例: 完成量: ??testArchive.rar, ??testArchive.r00 可用:testArchive.rar 从testArchive.rar扫描存档内的文件,不带testArchive.r00
我正在玩php rar
http://www.php.net/manual/en/intro.rar.php 目标: 示例: 完成量: 可用:testArchive.rar 从testArchive.rar扫描存档内的文件,不带testArchive.r00 Winrar(rarlabs.com)为您提供了第一卷中多卷rar存档的存档(文件)内容. 我尝试了以下但是这给了我一个空数组. function retnull() { return null; } $arch = RarArchive::open("testArchive.rar",NULL,'retnull' ); $arch->setAllowBroken(true); if ($arch === FALSE) die("Cannot open testArchive.rar"); $entries = $arch->getEntries(); if ($entries === FALSE) die("Cannot retrieve entries"); echo '<pre>'; print_r($entries); echo '</pre>'; 我不需要提取rar文件,但只需要存档内的文件夹/文件的内容[NAMES],如程序winrar所做的那样. 有人能给我一个正确方向的暗示吗? 解决方法
找到了解决我自己问题的方法.
安装UnRar http://www.win-rar.com/rarextras.html <?php $path ='/path/to/archiveFolder/'; $archive='testArchive.rar'; $var =exec('unrar l -p- '.escapeshellarg($path.$archive),$file_output); echo '<pre>'; print_r($file_output); echo '</pre>'; ?> 这将为您提供以下输出: Array ( [0] => [1] => UNRAR 4.10 freeware Copyright (c) 1993-2012 Alexander Roshal [2] => [3] => Volume path/to/archiveFolder/testArchive.rar [4] => [5] => Name Size Packed Ratio Date Time Attr CRC Meth Ver [6] => ------------------------------------------------------------------------------- [7] => testfile.mkv 1699997366 49999891 --> 19-02-12 21:05 .....A. 95E20DA9 m0g 2.0 [8] => ------------------------------------------------------------------------------- [9] => 1 1699997366 49999891 2% volume 1 [10] => ) 之后只需编写一个类来使用reg-patterns或substr检索所需的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |