2011-09-27 14 views
7

Obecnie używam:Alternatywny do PHP exec() funkcji

exec("zcat $filename", $output) 

Aby rozpakować plik .Z typu, ale niestety moja firma hostingowa ma teraz zablokował tę funkcję.

Czy istnieje obejście?

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

Użyj innego hosta? –

+0

Niestety, format 'compress '' .Z' nie jest zrozumiany przez samą zlib, więc PHP 'gzuncompress()' nie będzie działać. Jeśli nie możesz już używać 'exec', będziesz musiał dostosować swoje źródła plików. Użyj 'gzip' od teraz. – mario

+0

Niestety pliki, które pobieram, są w formacie .Z. O ile nie istnieje automatyczny sposób konwertowania ich na format gzip, muszę trzymać się formatu .Z. Czy znasz dowolnego hosta, który zezwala na exec()? –

Odpowiedz

2
system($shell_command, $response_var); 

Tak więc w Twoim przypadku:

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

mogę prawie założyć się, że zablokowali to i passthru() zbyt – elibyy

+0

im pewnie oni zrobili zbyt lol, właśnie wyrzucając alternatywne metody – Atticus

+0

mają wyłączony system() zbyt –

6

zrobić

echo ini_get("disable_functions"); 

wiedzieć, czy jesteś w stanie skorzystać z jednej z następujących czynności:

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

ale jeśli jest to dzielonego hostingu wszystkie powyższe są na pewno zablokowany i trzeba będzie znaleźć alternatywę

+0

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

2

pliki .Z są LZW compression. Jeśli nie możesz uruchamiać poleceń powłoki na swoim hoście, możesz użyć biblioteki LZW PHP. Tutaj są dwa:

+0

Nie działa dla mnie! –

+0

Czy pojawił się błąd lub cokolwiek, co można usunąć z debugowania? – six8