我正在设置一个脚本,以便我可以输入一个网页的 URL,并且该脚本将wget
文件。但是,大多数文件将采用该*.rar
格式。无论如何我可以将文件名传递给unrar
命令以取消归档通过下载的文件wget
吗?
非常非常感谢提前!
编辑我考虑过使用 PHP 的explode()
函数通过斜杠 () 来分解 URL,/
但这似乎有点 hack-y。
您应该考虑使用 PHP 自己的cURL和RAR扩展,而不是分叉到外部程序来下载和提取文件。您可以使用tmpfile()函数创建一个临时文件,将其用作 CURLOPT_FILE 选项的值以使 cURL 将下载的文件保存在那里,然后使用 RAR 函数打开该文件以提取内容。
用于basename()
获取文件名。
@Wyzard 给出了最好的答案。如果有一个库可以解决您的问题,请使用它而不是分叉外部进程。它更安全,而且是干净的解决方案。PHP 的cURL和RAR都不错,使用它们。
但是,如果您必须使用wget
and unrar
,那么 @rik 给出了一个很好的答案。wget
的-O filename
选项将文件保存为filename
,因此您不必解决它。我宁愿wget
使用.unrar
wget -q -O - http://www.example.com | unrar
@Byron 的回答很有帮助,但你真的不需要在这里使用它。但是,它比explode()
用作您的编辑提及要好。
wget -O filename URL && unrar filename