2011-09-27 43 views
7

Hiện nay tôi đang sử dụng:thay thế cho PHP exec() chức năng

exec("zcat $filename", $output) 

Để giải nén một file .Z loại nhưng tiếc là công ty lưu trữ của tôi bây giờ đã bị vô hiệu hóa chức năng này.

Có một cách giải quyết?

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

Sử dụng một máy chủ khác nhau? –

+0

Thật không may là định dạng 'nén'' .Z' không được hiểu bởi chính zlib, do đó, 'gzuncompress()' của PHP sẽ không hoạt động. Nếu bạn không thể sử dụng 'exec' nữa, bạn sẽ phải điều chỉnh các nguồn tập tin của bạn. Sử dụng 'gzip' từ bây giờ. – mario

+0

Rất tiếc, các tệp tôi đang tìm nạp có định dạng .Z. Trừ khi có một cách tự động chuyển đổi chúng sang định dạng gzip, tôi phải gắn với định dạng .Z. Bạn có biết bất kỳ máy chủ nào cho phép exec() không? –

Trả lời

2
system($shell_command, $response_var); 

Vì vậy, trong trường hợp của bạn:

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

tôi gần như có thể đặt cược rằng họ bị chặn này và passthru() quá – elibyy

+0

im chắc chắn họ đã làm quá lol, chỉ cần ném ra các phương pháp thay thế – Atticus

+0

họ đã tắt hệ thống() quá –

6

làm điều này

echo ini_get("disable_functions"); 

biết nếu bạn có thể sử dụng một trong các cách sau:

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

nhưng nếu đó là một chia sẻ lưu trữ tất cả các bên trên được chắc chắn bị chặn và bạn sẽ phải tìm một sự thay thế

+0

show_source, hệ thống, shell_exec, passthru, exec, popen, proc_open, chmod, mkdir, chdir, allow_url_fopen, rmdir –

2

file .Z là LZW compression. Nếu bạn không thể chạy các lệnh shell trên máy chủ của mình, bạn có thể sử dụng thư viện LZW PHP. Dưới đây là hai:

+0

Không hoạt động cho tôi! –

+0

Bạn có gặp lỗi hay bất kỳ thứ gì có thể được sửa lỗi không? – six8

Các vấn đề liên quan