为PHP启用zip扩展名


Enable the zip extension for PHP

我试图在PHP中启用.zip扩展名,但下面的函数返回false。

if (!extension_loaded('zip')) {
    return false;
}

我如何启用。zip扩展与不使用php.ini?

可以启用ini_set()吗?

如果服务器上有可用的ZIP扩展名,则可以使用dl()动态加载它(<5.3)。

if (!extension_loaded('zip')) {
    // Attempt to load the zip
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'zip.' . PHP_SHLIB_SUFFIX);
    if (!extension_loaded('zip')) {
        // Couldn't load the ZIP module dynamically, either
        return false;
    }
}

如果你使用的是5.3.0以上的版本,你将无法使用dl,除非它在命令行上运行或嵌入到web服务器。

如果您不能使用PHP内置的模块重新编译,那么您唯一的选择就是修改php.ini。你不能使用ini_set来做到这一点,因为这只会在运行时应用,而所有必需的模块都已经在启动时被PHP可执行文件加载。

用这个,

if (!extension_loaded('zip'))
{ 
    $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
    dl($prefix . 'zip.' . PHP_SHLIB_SUFFIX);
    if (!extension_loaded('zip')) 
    {
       return false;
    }
}