2 jiansva jiansva 于 2016.01.22 10:09 提问

php获取rar文件里面的内容,输出来如何解析?

最近有一个需求:将rar压缩文件里面的文件名、大小获取出来,解析成json输出来;
查阅了无数资料,得知添加php_rar.dll(如果是zip的话,就添加php_zip.dll扩展),最后通过程序得到rar的相关内容,但对里面获取到的内容格式不知道怎么解析成json,求大神指点一二。

$rar_file = rar_open('222.rar') or die("Failed to open Rar archive");

$entries_list = rar_list($rar_file);

header('Content-Type: text/plain');
print_r($entries_list);

得到数据如下:
Array
(
[0] => RarEntry Object
(
[rarfile:RarEntry:private] => RarArchive Object
(
)

        [position:RarEntry:private] => 0
        [name:RarEntry:private] => tar.php
        [unpacked_size:RarEntry:private] => 64332
        [packed_size:RarEntry:private] => 11726
        [host_os:RarEntry:private] => 2
        [file_time:RarEntry:private] => 2012-07-09 23:47:06
        [crc:RarEntry:private] => 69e1487f
        [attr:RarEntry:private] => 128
        [version:RarEntry:private] => 29
        [method:RarEntry:private] => 51
        [flags:RarEntry:private] => 32928
    )

[1] => RarEntry Object
    (
        [rarfile:RarEntry:private] => RarArchive Object
            (
            )

        [position:RarEntry:private] => 1
        [name:RarEntry:private] => upload.php
        [unpacked_size:RarEntry:private] => 2461
        [packed_size:RarEntry:private] => 1033
        [host_os:RarEntry:private] => 2
        [file_time:RarEntry:private] => 2012-07-09 23:47:06
        [crc:RarEntry:private] => ecc4a20d
        [attr:RarEntry:private] => 128
        [version:RarEntry:private] => 29
        [method:RarEntry:private] => 51
        [flags:RarEntry:private] => 32928
    )

[2] => RarEntry Object
    (
        [rarfile:RarEntry:private] => RarArchive Object
            (
            )

        [position:RarEntry:private] => 2
        [name:RarEntry:private] => urlupload.php
        [unpacked_size:RarEntry:private] => 1877
        [packed_size:RarEntry:private] => 864
        [host_os:RarEntry:private] => 2
        [file_time:RarEntry:private] => 2012-07-09 23:47:06
        [crc:RarEntry:private] => 44a999a9
        [attr:RarEntry:private] => 128
        [version:RarEntry:private] => 29
        [method:RarEntry:private] => 51
        [flags:RarEntry:private] => 32928
    )

[3] => RarEntry Object
    (
        [rarfile:RarEntry:private] => RarArchive Object
            (
            )

        [position:RarEntry:private] => 3
        [name:RarEntry:private] => user.php
        [unpacked_size:RarEntry:private] => 402
        [packed_size:RarEntry:private] => 222
        [host_os:RarEntry:private] => 2
        [file_time:RarEntry:private] => 2012-07-09 23:47:06
        [crc:RarEntry:private] => 22db657e
        [attr:RarEntry:private] => 128
        [version:RarEntry:private] => 29
        [method:RarEntry:private] => 51
        [flags:RarEntry:private] => 32928
    )

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.22 13:52

RarEntry就是rar文件里每个压缩的文件

jiansva
jiansva   2016.01.22 10:10

RarEntry Object这是神马意思?

jiansva
jiansva   2016.01.22 16:33

我循环数组之后,得到里面那一串再怎么处理?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java解析rar压缩文档
最近做项目,要提取rar压缩文档中的文本内容,方法接口为:int 为返回rar文件是否加密。 is为rar文件输入流。 textBuf为保存解析rar文档内的全部文档内容。public int getText(InputStream is, StringBuffer textBuf){ }java里面没有提供解析rar文档的类库,后来才知道,WinRAR 使用是需要付费的,并不是免费使
java 读取ZIP和RAR压缩包的目录结构
java ZIP和RAR 压缩包 目录结构。 1.ant.jar 解决java自带zip不能读取中文压缩包的问题; 2.需要安装WINRAR软件,以便解压rar文件,然后获取对应目录; 3.实现在线预览压缩包目录结构的功能;
PHP中获取某个网页或文件内容的方法
1. 通过file_get_contents()函数 $contents = file_get_contents('http://demo.com/index.php'); echo $contents; 2. 通过fopen()和fread()函数 $handle = fopen('http://demo.com/index.php', 'r');    // 以
java解压缩文件和不解压读取压缩文件中的文本文件内容
解压缩(压缩文件中不带文件夹)public void unZip(String fileName){ try { ZipInputStream zis = new ZipInputStream(new FileInputStream(new File(fileName))); BufferedInputStream bis = new
java解析压缩文件.zip,获取文件夹下的数据
/**  * 数据包Controller  * @author cookie  * @version 2017-08-23  */ public class BudgetDateController extends BaseController {             /**      * 生成数据包      * @param budgetDatabase   
可以提取加密RAR中的文件的万能文件提取器
可以提取加密RAR中的文件,不错的东西,大家用用吧
34.如何获取app(apk和ipa)中的资源
移动互联网中,主要的两个平台是android和ios,android上文件的安装包是后缀名为apk的文件,ios上文件的安装包是后缀名为ipa的文件,在本文分析一下这两种文件的特点,以及如何用程序去解析这些安装包的资源。
PHP如何抓取一个网址中的内容?
 1.file_get_contents PHP代码 复制代码 代码如下: $url = "http://www.jb51.net"; $contents = file_get_contents($url); //如果出现中文乱码使用下面代码 //$getcontent = iconv("gb2312", "utf-8",$contents); ech
php获取文件夹中所有lrc格式文件,提取lrc文件中内容
功能说明: 一个文件夹内有MP3文件和lrc(歌词文件),我要提取文件夹下所有的lrc文件内容中的标题. 一个lrc文件的内容像这样: [al:新概念英语(一)] [ar:MP3 同步字幕版(美音)] [ti:Sorry, Sir.] [00:00.79]Lesson 3 [00:02.98]Sorry sir. [00:05.75]Listen to the tape then a
java 直接读取zip文件和文件内容
不解压zip文件,直接读取zip包内的文件夹以及文件内容