2017-10-03 4 views
0

Alors zipArhive:: est de retour false, j'ai essayé le je suis bloqué sur ce qu'il faut faire getStringStatus et il est de retour « pas d'erreur » si ...Problème avec zipArchive :: close() retour faux

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

Résultats: bool (true) bool (true) bool (true) string (8) "pas d'erreur" bool (false)

Répondre

0

Vous ouvrez un fichier pour l'écriture, mais n'avez pas créé par le moment où vous l'ajoutez à l'archive zip. Que se passe-t-il si vous créez le fichier $fp (et le fermez) avant d'essayer de l'ajouter à ZipArchive?

<?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

J'obtenu: 'bool (false)' –

+0

Ok, je trouve la question, il était de faire avec le $ zipFileName ne pas avoir le chemin complet ne va donc pas au bon endroit sur le serveur. Mais maintenant, dans le fichier zip j'ai var/www/etc/etc/etc/etc savez-vous comment je peux obtenir le seul fichier? '$ zip-> open ($ filePath. $ zipFileName, ZipArchive :: CREATE);' –

+0

Je ne suis pas sûr de comprendre votre nouveau problème. Puisque vous avez résolu le problème que vous avez posé, il vaut mieux le poser comme nouvelle question ou mettre à jour celui-ci. –