我有一个PHP文件,其输出我想添加到zip存档(使用PHP' s ZipArchive
类)。但是,当我尝试添加它时,它只是给我PHP源代码,未经处理。 如何在将PHP添加到zip之前确保运行和处理PHP?
这是我迄今为止所做的尝试:
<?PHP
$z = $_GET['z']; // something like 'css-js-Type', etc.
$cols = $_GET['cols']; // a number
if (!$z)
{
header("Location: /husk/get/");
exit();
}
if ($cols)
$cols = intval($cols);
else
$cols = 12;
$zname = 'Husk_' . $z . "_$cols".'col' . '_' . getHuskVersion() . '.zip';
$here = $_SERVER['DOCUMENT_ROOT'] . '/prog/husk';
$filename = "$here/get/$zname";
if (!file_exists ($filename))
{
$z = explode ('-', $z);
$zip = new ZipArchive();
if ($zip->open($filename, ZipArchive::CREATE) !== TRUE)
exit("cannot open <$filename>\n");
$_GET['cols'] = $cols;
if (in_array('css', $z))
$zip->addFile("$here\\_css\\HuskGen.php", "Husk_$cols.css");
if (in_array('js', $z))
$zip->addFile("$here\\_js\\Husk.jQuery.js", 'Husk.jQuery.js');
if (in_array('Flex', $z))
$zip->addFile("$here\\_css\\Flex.css", 'Flex.css');
if (in_array('Type', $z))
$zip->addFile("$here\\_css\\Type.css", 'Type.css');
if (in_array('Print', $z))
$zip->addFile("$here\\_css\\Print.css", 'Print.css');
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
}
header("Location: /husk/get/$zname");
?>
答案 0 :(得分:1)
文件是文件。 &#34;扩展&#34;阅读时没关系。
如果您需要PHP脚本解释,您必须自己执行此操作( em> PHP脚本):
ob_start();
require "myscript.php";
$contents = ob_get_clean();
然后,$contents
可以添加到ZIP文件中。
然而,这种方法很幼稚,因为它依赖于所需的PHP脚本来干净地执行并将所有必需的输出传递给STDOUT。哪些PHP脚本不要做。
根据您的php.ini
(或其他设置),执行脚本时出现的警告,错误或其他不适合公开发布的内容将包含在您的ZIP存档中好。