Здравейте колеги,
Досега изобщо не ми се беше налагало да разархивирам с php ама и до там го докарахме. Естествено като всеки закорявал програмист почвам с документацията.
https://www.php.net/manual/en/class.ziparchive.phpСа тука особенното при мене е че съм с версия 7.4 и според документацията
https://www.php.net/manual/en/zip.installation.phpAs of PHP 7.4.0, in order to use these functions you must compile PHP with zip support by using the --with-zip configure option. Previously, zip support had to be enabled by using the --enable-zip configure option. As of PHP 7.4.0, the bundled libzip is removed.
Са хубаво обаче аз версията я инсталирах от пакетния мениджър на Ubuntu, не съм я билдвал ръчно.
След кратко търсене се оказа че си има пакет php7.4-zip хубаво инсталирах, рестартнах apache обаче все тая. Интересното е че в примерните който дават се почва така :
$zip = new ZipArchive;
Хубаво обаче apache ми хвърля грешка че няма такава константа. Почвам да импровизирам :
$zip = new ZipArchive();
Дава ми няма такъв клас. И в тоя момент се сетих да го пусна тоя код през cli:
<?php
$zip = new ZipArchive;
var_dump($zip);
?>
Резултата е следния
object(ZipArchive)#1 (5) {
["status"]=>
int(0)
["statusSys"]=>
int(0)
["numFiles"]=>
int(0)
["filename"]=>
string(0) ""
["comment"]=>
string(0) ""
}
Значи излиза че през cli работи ама като се извика през уеб сървъра не работи.
Някой да има обяснение защо това е така?