2013-03-12 18 views
7

Sto tentando di abilitare l'estensione .zip in PHP, ma la funzione sottostante restituisce false.Abilita l'estensione zip per PHP

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

Come abilitare l'estensione .zip senza utilizzare php.ini?

È possibile abilitare l'utilizzo di ini_set()?

+0

Qual è il tuo sistema operativo? –

+0

c'è un ZIP di qualche descrizione elencata quando si fa un __phpinfo(); __ – Waygood

+0

Ci sono implementazioni userland dell'estensione ZIP. Anche se l'API di solito devia. – mario

risposta

2

A condizione che l'estensione ZIP sia disponibile sul server, è possibile utilizzare dl() per caricarlo dinamicamente (< 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; 
    } 
} 

Se si utilizza una versione 5.3.0 di cui sopra, non sarà in grado di utilizzare dl meno che non sia in esecuzione sulla riga di comando o incorporato in un server web.

Ciò lascia la tua unica opzione di modifica dello php.ini se non riesci a ricompilare con il modulo integrato in PHP. Non è possibile farlo utilizzando ini_set, poiché verrà applicato solo in fase di esecuzione mentre tutti i moduli richiesti saranno già stati caricati dall'eseguibile di PHP all'avvio.

+1

Questa funzione è stata rimossa da alcuni SAPI in PHP 5.3. –

+0

dl non sarà abilitato in alcuni casi in php5.4, quindi è meglio ricompilare php con --enable-gzip –

+1

Ha esplicitamente dichiarato che non voleva usare 'php.ini'. Se non può usarlo, pensi davvero di poter ricompilare? –

1

Utilizzare questo,

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

Sembra uguale a quello precedente. Non ho visto alcuna differenza ... – asitha

Problemi correlati