2017-01-21 2 views
1

Когда я пытаюсь использовать этот код для подсчета страниц в .docx файла я всегда получаю ошибку:«Invalid или инициализирован объект Zip» Ошибка при закрытии файла 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; 
} 

Что случилось?

ответ

1

У вас просто есть 2 застежка-молнии в коде, вторая будет генерировать ошибку, поскольку вы уже закрыли почтовый индекс.

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

Право! Теперь работать. Спасибо! – Giancarlo

Смежные вопросы