读取位于zip存档中的php文件

时间:2019-01-12 21:19:40

标签: php zip ziparchive

我一直试图读取ZIP归档文件中的PHP文件。我已经编写了以下代码,该代码可以读取文本文档并回显而没有错误,但是当我使用PHP文件对其进行测试时,什么也没有出现。那我该怎么做却不解压缩来读取PHP文件?

<?php
$zip = zip_open("test.zip");
$filename= "test.php";

if (is_resource($zip))
{
while ($zip_entry = zip_read($zip))
{
    if (zip_entry_open($zip, $zip_entry) && zip_entry_name($zip_entry) == $filename)
    {
        echo "Name: " . zip_entry_name($zip_entry) . "<br />";
        echo "<p>";
        echo "File Contents:<br/>";
        $contents = zip_entry_read($zip_entry);
        echo "$contents<br />";
        zip_entry_close($zip_entry);
    }
}
zip_close($zip);
}

谢谢!

2 个答案:

答案 0 :(得分:0)

使用默认的zip_read()php函数的资源并不多,但是这个https://github.com/Ne-Lexa/php-zip库使在php中使用zip文件变得轻而易举,您应该检查一下。

答案 1 :(得分:0)

您可以使用stream wrappers直接从zip内一行读取文件,而无需将任何内容提取到磁盘。例如:

$str = file_get_contents('zip://test.zip#test.php');