如何使用 php 添加文件到 zip,这些文件应该有一个 GET 参数
how to add files to zip using php, and these files should have a GET parameters
我有一个文件 gen.php
这个文件应该有一些 GET 参数,比如:gen.php?oid=35852
当打开此 link 时:gen.php?oid=35852
将使用一些 php headers
生成名为 35852.txt
的下载文件
现在我正在尝试使用 php ZipArchive()
将这些生成的文件添加到 zip 存档中,但它不起作用
$zip = new ZipArchive(); // Load zip library
$zip_name = time().".zip"; // Zip name
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
// Opening zip file to load files
$error .= "* Sorry ZIP creation failed at this time";
}
//this file will not added
$zip->addFile('/../../ser/gen.php?oid=35851');
//this file will not added
$zip->addFile('../ser/gen.php?oid=35852');
//this file will added, but as you see it will be the PHP file
$zip->addFile('../ser/gen.php');
//this file will added as a sample file
$zip->addFile('../samples2/2.png');
$zip->close();
有什么方法可以将 gen.php?oid=35851
的结果文件添加到 zip 存档中吗?
如果要将gen.php?oid=35852
生成的内容下载到35852.txt
文件中,然后将下载的文件压缩成Zip,可以使用类似下面的代码。
$id = 35851;
$url = "http://yourdomain.com/gen.php?oid=$id";
$txt_name = "${id}.txt";
$zip_name = "${id}.zip";
$zip = new ZipArchive();
if ($zip->open($zip_name, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) {
die("Failed to create zip archive $zip_name");
}
if (! $text = file_get_contents($url)) {
die("Failed to download $url");
}
if (false === file_put_contents($txt_name, $text)) {
die("Failed to write to $txt_name");
}
if (! $zip->addFile($txt_name)) {
unlink($txt_name);
die("Failed to add $txt_name to $zip_name");
}
$zip->close();
unlink($txt_name);
我有一个文件 gen.php
这个文件应该有一些 GET 参数,比如:gen.php?oid=35852
当打开此 link 时:gen.php?oid=35852
将使用一些 php headers
35852.txt
的下载文件
现在我正在尝试使用 php ZipArchive()
将这些生成的文件添加到 zip 存档中,但它不起作用
$zip = new ZipArchive(); // Load zip library
$zip_name = time().".zip"; // Zip name
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
// Opening zip file to load files
$error .= "* Sorry ZIP creation failed at this time";
}
//this file will not added
$zip->addFile('/../../ser/gen.php?oid=35851');
//this file will not added
$zip->addFile('../ser/gen.php?oid=35852');
//this file will added, but as you see it will be the PHP file
$zip->addFile('../ser/gen.php');
//this file will added as a sample file
$zip->addFile('../samples2/2.png');
$zip->close();
有什么方法可以将 gen.php?oid=35851
的结果文件添加到 zip 存档中吗?
如果要将gen.php?oid=35852
生成的内容下载到35852.txt
文件中,然后将下载的文件压缩成Zip,可以使用类似下面的代码。
$id = 35851;
$url = "http://yourdomain.com/gen.php?oid=$id";
$txt_name = "${id}.txt";
$zip_name = "${id}.zip";
$zip = new ZipArchive();
if ($zip->open($zip_name, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) {
die("Failed to create zip archive $zip_name");
}
if (! $text = file_get_contents($url)) {
die("Failed to download $url");
}
if (false === file_put_contents($txt_name, $text)) {
die("Failed to write to $txt_name");
}
if (! $zip->addFile($txt_name)) {
unlink($txt_name);
die("Failed to add $txt_name to $zip_name");
}
$zip->close();
unlink($txt_name);