2016-10-06 19 views
1

私はzipArchiveクラスを見ましたが、CodeIgniterでの適用方法はわかりません。codeigniterの出力ファイル名はzipおよびrarファイル

<?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に圧縮ファイル内のすべてのファイル名を出力できるライブラリはありますか?

+0

は、あなたがこれまでに –

+0

更新質問を参照してくださいしようとしたものを、あなたのコードを示して使用ZIPためRAR support

を検索し、おかげで先生 – user6689924

+0

考えると答えが正しいですかあなたの間違いを指摘したいだけです。 URLの代わりにファイルのパス(zipクラス)を管理する必要があります。 'FCPATH'は' base_url() 'の場所と同じです。 – Tpojka

答えて

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()を使用することができ、この

$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/>'; 
      } 
     } 
+0

ありがとうございましたが、すでに.zipにファイルがあります – user6689924

+0

私は自分の答えを編集しました。今すぐ '.zip'ファイルの解答を確認してください –

+1

ありがとうございます。 – user6689924

関連する問題