Codeigniter在zip和rar文件中输出文件名

时间:2016-10-06 05:06:55

标签: php codeigniter

我看过 zipArchive 类,但我不知道如何在CodeIgniter中应用它。

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Tools extends CI_Controller {

public function index()
{
    //$this->load->library('zip');

    $path = base_url()."files/2016_02_26_02_03_26_Philosophizing_and_Being_Human_TB.rar";
    $zip = new ZipArchive; 
    if ($zip->open($path)) 
    { 
         for($i = 0; $i < $zip->numFiles; $i++) 
         {   
              echo 'Filename: ' . $zip->getNameIndex($i) . '<br />'; 
         } 
    } 
    else 
    { 
         echo 'Error reading zip-archive!'; 
    } 
}
}

CodeIgniter中是否有可以输出压缩文件中所有文件名的库?

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码完成此任务。您应该使用RarArchive类而不是现在使用的类。因为您的文件不是zip而是.rar

   $rar_arch = RarArchive::open('./files/2016_02_26_02_03_26_Philosophizing_and_Being_Human_TB.rar');
    if ($rar_arch === FALSE)
        die("Could not open RAR archive.");

    $rar_entries = $rar_arch->getEntries();
    if ($rar_entries === FALSE)
        die("Could not retrieve entries.");

    //echo "Found " . count($rar_entries) . " entries.\n";

    foreach ($rar_entries as $e) {
        echo $e.'<br/>';
        //echo "\n";
    }
    $rar_arch->close();

但在此之前请确保您的RarArchive扩展程序已安装在您的服务器中。要检查是否已启用,您可以使用phpinfo()并搜索RAR support

对于ZIP使用此

$zip = new ZipArchive; 
        if ($zip->open('./files/2016_02_26_02_03_26_Philosophizing_and_Being_Human_TB.zip') == TRUE) {
            for ($i = 0; $i < $zip->numFiles; $i++) {
                $filename = $zip->getNameIndex($i);
                echo $filename.'<br/>';
            }
        }