PHP で .zip 拡張子を有効にしようとしていますが、以下の関数は false を返します。
if (!extension_loaded('zip')) {
return false;
}
php.ini を使用せずに .zip 拡張子を有効にするにはどうすればよいですか?
を使用して有効にすることはできini_set()
ますか?
PHP で .zip 拡張子を有効にしようとしていますが、以下の関数は false を返します。
if (!extension_loaded('zip')) {
return false;
}
php.ini を使用せずに .zip 拡張子を有効にするにはどうすればよいですか?
を使用して有効にすることはでき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;
}
}
dl
5.3.0より前のバージョンを使用している場合は、コマンドラインで実行されているか、Webサーバーに組み込まれていない限り、使用できません。
php.ini
PHPに組み込まれているモジュールで再コンパイルできない場合は、を変更するしかありません。を使用してこれを行うことはできません。これ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;
}
}