2011-09-27 14 views
7

Attualmente sto usando:alternativo a PHP funzione exec()

exec("zcat $filename", $output) 

per decomprimere un file .Z tipo, ma purtroppo la mia società di hosting ha ora disattivato questa funzione.

C'è una soluzione?

$pathtofile = "filename.lis.Z"; 
exec("zcat $pathtofile", $output); 
+2

utilizzare un host diverso? –

+0

Sfortunatamente il formato 'compresso' .Z' non è compreso da zlib stesso, quindi 'gzuncompress()' di PHP non funzionerà. Se non puoi più usare 'exec', dovrai adattare le sorgenti dei tuoi file. Usa 'gzip' d'ora in poi. – mario

+0

Sfortunatamente i file che sto recuperando sono in formato .Z. A meno che non ci sia un modo automatico per convertirli in formato gzip, devo attenermi al formato .Z. Conosci qualche host che permette exec()? –

risposta

2
system($shell_command, $response_var); 

Quindi nel tuo caso:

system("zcat $filename", $output); 
+3

posso quasi scommettere che hanno bloccato questo e passthru() anche – elibyy

+0

sono sicuro che hanno fatto troppo lol, solo lanciando metodi alternativi – Atticus

+0

hanno disabilitato il sistema() –

6

fare questo

echo ini_get("disable_functions"); 

per sapere se si è in grado di utilizzare una delle seguenti opzioni:

system(); exec(); passthru(); shell_exec();

, ma se si tratta di un hosting condiviso tutto quanto sopra sono di sicuro bloccato e si dovrà trovare un'alternativa

+0

show_source, system, shell_exec, passthru, exec, popen, proc_open, chmod, mkdir, chdir, allow_url_fopen, rmdir –

2

file .Z sono LZW compression. Se non puoi eseguire comandi shell sul tuo host, puoi usare una libreria LZW PHP. Qui ci sono due:

+0

Non ha funzionato per me! –

+0

Hai ricevuto un errore o qualcosa che può essere sottoposto a debug? – six8