2017-01-21 1 views
1

Lorsque je tente d'utiliser ce code pour compter les pages dans un fichier .docx je reçois toujours l'erreur:« non valide ou non initialisée objet Zip » Erreur lors de la fermeture fichier DOCX

"Warning: ZipArchive::close(): Invalid or unitialized Zip object in"

function PageCount_DOCX($file) { 
    $pageCount = 0; 

    $zip = new ZipArchive(); 

    if($zip->open($file) === true) { 
     if(($index = $zip->locateName('docProps/app.xml')) !== false) { 
      $data = $zip->getFromIndex($index); 
      $zip->close(); 
      $xml = new SimpleXMLElement($data); 
      $pageCount = $xml->Pages; 
     } 
     $zip->close(); 
    } 

    return $pageCount; 
} 

Qu'est-ce qui ne va pas?

Répondre

1

Vous avez simplement 2 fermetures zip dans le code, le second va générer l'erreur que vous avez déjà fermé le zip.

function PageCount_DOCX($file) { 
    $pageCount = 0; 

    $zip = new ZipArchive(); 

    if($zip->open($file) === true) { 
     if(($index = $zip->locateName('docProps/app.xml')) !== false) { 
      $data = $zip->getFromIndex($index); 
      // remove this one 
      //$zip->close(); 
      $xml = new SimpleXMLElement($data); 
      $pageCount = $xml->Pages; 
     } 
     // or remove this one 
     $zip->close(); 
    } 

    return $pageCount; 
} 
+0

Droite !! maintenant, travaille. Je vous remercie! – Giancarlo