我看过 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中是否有可以输出压缩文件中所有文件名的库?
答案 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/>';
}
}