我尝试在PHP中启用.zip扩展,但是下面的函数返回false。
if (!extension_loaded('zip')) {
return false;
}如何在不使用php.ini的情况下启用.zip扩展?
是否可以使用ini_set()启用
发布于 2013-03-12 17:53:36
假设您在服务器上确实有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.ini中的模块重新编译,那么您唯一的选择就是修改PHP。你不能使用ini_set来做到这一点,因为它只会在运行时应用,而所有需要的模块在启动时都已经被PHP可执行文件加载了。
发布于 2013-03-12 18:11:21
使用这个,
if (!extension_loaded('zip'))
{
$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
dl($prefix . 'zip.' . PHP_SHLIB_SUFFIX);
if (!extension_loaded('zip'))
{
return false;
}
}https://stackoverflow.com/questions/15357917
复制相似问题