0

我正在设置一个脚本,以便我可以输入一个网页的 URL,并且该脚本将wget文件。但是,大多数文件将采用该*.rar格式。无论如何我可以将文件名传递给unrar命令以取消归档通过下载的文件wget吗?

非常非常感谢提前!

编辑我考虑过使用 PHP 的explode()函数通过斜杠 () 来分解 URL,/但这似乎有点 hack-y。

4

4 回答 4

2

您应该考虑使用 PHP 自己的cURLRAR扩展,而不是分叉到外部程序来下载和提取文件。您可以使用tmpfile()函数创建一个临时文件,将其用作 CURLOPT_FILE 选项的值以使 cURL 将下载的文件保存在那里,然后使用 RAR 函数打开该文件以提取内容。

于 2010-12-03T00:43:43.357 回答
2

用于basename()获取文件名。

于 2010-12-03T00:57:48.407 回答
1

@Wyzard 给出了最好的答案。如果有一个库可以解决您的问题,请使用它而不是分叉外部进程。它更安全,而且是干净的解决方案。PHP 的cURLRAR都不错,使用它们。

但是,如果您必须使用wgetand unrar,那么 @rik 给出了一个很好的答案。wget-O filename选项将文件保存为filename,因此您不必解决它。我宁愿wget使用.unrarwget -q -O - http://www.example.com | unrar

@Byron 的回答很有帮助,但你真的不需要在这里使用它。但是,它比explode()用作您的编辑提及要好。

于 2011-01-02T09:13:45.243 回答
0

wget -O filename URL && unrar filename

于 2010-12-03T00:49:47.233 回答