【发布时间】:2011-11-25 18:38:41
【问题描述】:
目前我正在使用:
exec("zcat $filename", $output)
要解压.Z 类型的文件,但不幸的是我的托管公司现已禁用此功能。
有解决办法吗?
$pathtofile = "filename.lis.Z";
exec("zcat $pathtofile", $output);
【问题讨论】:
-
不幸的是,
compress格式.Z不被 zlib 本身理解,所以 PHPsgzuncompress()将无法工作。如果您不能再使用exec,您将不得不调整您的文件源。从现在开始使用gzip。 -
不幸的是,我获取的文件是 .Z 格式的。除非有一种自动将它们转换为 gzip 格式的方法,否则我必须坚持使用 .Z 格式。你知道任何允许 exec() 的主机吗?
-
嗯,几乎所有专业主机都使用 suexec 而不是安全模式解决方法。请注意,您的
zcat是支持 .Z 的特殊版本;您可能需要重新安装或使用uncompress -c $filename。还要记住escapeshellarg()这里。 -
我没有使用 escapeshellarg() 但 php.net 帮助文件说“转义一个字符串以用作 shell 参数”但问题是我认为为了使用它我仍然需要系统() 或 exec() 但我的主机已阻止两者。你知道有哪些服务提供商不会让我做这样的噩梦吗?
-
@mario 如何使用 suexec?我的托管公司告诉我他们已经安装了 suexec 但我仍然不能使用 exec() 函数所以想知道它现在是如何工作的?