首页 > 解决方案 > 读取位于 zip 存档中的 php 文件

问题描述

我一直在尝试读取 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);
}

提前致谢!

标签: phpzipziparchive

解决方案


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

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

推荐阅读