"Недопустимый или унифицированный Zip-объект" Ошибка при закрытии файла DOCX
Когда я пытаюсь использовать этот код для подсчета страниц в файле.docx, я всегда получаю сообщение об ошибке:
"Предупреждение: ZipArchive::close(): недопустимый или унифицированный объект 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);
$zip->close();
$xml = new SimpleXMLElement($data);
$pageCount = $xml->Pages;
}
$zip->close();
}
return $pageCount;
}
В чем дело?
1 ответ
У вас просто есть 2 закрытия zip в коде, второй вызовет ошибку, так как вы уже закрыли 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;
}