2017-10-03 1 views
0

So zipArhive::false zurückkehren, habe ich die getStringStatus versucht, und es kehrt zurück „kein Fehler“, so dass ich auf bin stecken, was zu tun ...Ausgabe mit ZipArchive :: close() false zurückgibt

$fp = fopen($filePath.$fileName, 'w'); 
$xml = $carXML->asXML(); 

$zipFileName = date('dmY')."-ebay.zip"; 

$zip = new ZipArchive(); 

$r= file_exists($filePath.$fileName); 
var_dump($r); 
$r = $zip->open($zipFileName, ZipArchive::CREATE); 
var_dump($r); 

$r = $zip->addFile($filePath.$fileName); 
var_dump($r); 

$r = $zip->getStatusString(); 
var_dump($r); 

$r = $zip->close(); 
var_dump($r); 

fputs ($fp, $xml); 
fclose($fp); 

Ergebnisse: bool (true) bool (true) bool (true) string (8) "kein Fehler" bool (false)

Antwort

0

Sie eine Datei zum Schreiben zu öffnen haben, aber es nicht erstellt die Zeit, die Sie es dem Zip-Archiv hinzufügen. Was passiert, wenn Sie die Datei $fp erstellen (und schließen), bevor Sie versuchen, sie dem ZipArchiv hinzuzufügen?

<?php 

$xmlFileName = $filePath.$fileName; 
$fp = fopen($xmlFileName, 'w'); 
$xml = $carXML->asXML(); 
fputs ($fp, $xml); 
fclose($fp); 

$zipFileName = date('dmY')."-ebay.zip"; 

$zip = new ZipArchive(); 

$r = $zip->open($zipFileName, ZipArchive::CREATE); 
$r = $zip->addFile($xmlFileName); 
$r = $zip->close(); 

var_dump($r); 
+0

Ich habe: 'bool (false)' –

+0

Ok, ich fand das Problem, war es mit der $ zipFileName nicht mit den vollständigen Pfad daher nicht gehen an die richtige Stelle auf dem Server zu tun. Aber jetzt, in der Zip-Datei habe ich var/www/etc/etc/etc/etc wissen Sie, wie ich nur die einzelne Datei bekommen kann? '$ zip-> open ($ filePath. $ zipFileName, ZipArchive :: CREATE);' –

+0

Ich bin mir nicht sicher, ob ich dein neues Problem verstehe. Da Sie das Problem gelöst haben, nach dem Sie gefragt haben, wird es am besten als neue Frage gestellt oder aktualisiert. –

Verwandte Themen