2016-05-02 7 views
1

ich eine Datei haben haben gen.php diese Datei wie einige GET-Parameter haben sollte: gen.php?oid=35852 beim Öffnen Sie diesen Link: gen.php?oid=35852 zum Download-Datei 35852.txt genannt generieren wird mit einige pHP-Headerwie Dateien hinzuzufügen php zu zip verwenden, und diese Dateien sollten eine GET-Parameter

jetzt mit pHP ZipArchive() ich versuche, diese generierten Dateien in einem Zip-Archiv hinzufügen, aber es funktioniert nicht

$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(); 

ist es eine Möglichkeit, die Ergebnisdateien von gen.php?oid=35851 hinzufügen, dass sein sollten : 35851.txt in das Zip-Archiv?

Antwort

0

Wenn Sie die von gen.php?oid=35852 generierten Inhalte in die Datei 35852.txt herunterladen und dann die heruntergeladene Datei in Zip komprimieren möchten, können Sie einen ähnlichen Code wie den folgenden verwenden.

$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); 
+0

habe ich diesen Fehler, wenn ich den Link verwendet: http://yourdomain.com/gen.php?oid=$id Warning: file_get_contents (? ../ gen.php oid = 35852): Fehler beim Öffnen des Streams: Keine solche Datei oder Verzeichnis in C: \ xampp \ htdocs \ script \ zip-gen.php in Zeile 27 Fehler beim Herunterladen der Datei und wenn ich es ohne? OID = $ ID verwendet, funktioniert es richtig –

+0

auch das, wenn Ihr Skript ohne irgendwelche Änderungen verwendet: Warnung: file_get_contents (../ gen.php? Oid = 35852): Fehler beim Öffnen des Streams: Ungültiges Argument in C: \ xampp \ htdocs \ script \ zip-ser2.php in Zeile 17 Fehler beim Herunterladen von ../gen.php?oid=35852 als die vorherige funktioniert es richtig, wenn ich entfernt? Oid = $ id –

+0

Arbeiten für mich, wenn nur einen vollständigen Link verwendet: http://yourdomain.com/gen.php?oid=$id –