我正在设置脚本,以便我可以将URL输入到网页上,脚本将 wget 文件。但是,大多数文件将在 *.rar 格式。无论如何,我可以将文件名传递给 unrar 命令不构建通过下载的文件 wget?

很多事前都非常感谢!

编辑 我考虑过使用PHP explode() 功能可以通过斜线分解URL(/)但这似乎有点骇客。

有帮助吗?

解决方案

@Wyzard给出了最好的答案。如果有一个解决您的问题的库,请使用它而不是分叉外部过程。它更安全,是干净的解决方案。 PHP的 卷曲RAR 很好,使用它们。

但是,如果您必须使用 wgetunrar, ,然后@rik给出了一个很好的答案。 wget' -O filename 选项将文件保存为 filename, ,因此您不必解决。我宁愿管 wget直接输出到 unrar 不过,使用 wget -q -O - http://www.example.com | unrar.

@拜伦的答案很有帮助,但是您确实不需要在这里使用它。但是,它比使用更好 explode() 如您的编辑所述。

其他提示

您不应考虑使用PHP自己的PHP,而不是向外部程序派出外部程序来下载和提取文件 卷曲RAR 扩展。您可以使用 tmpfile() 函数要创建一个临时文件,将其用作curlopt_file选项的值,以使curl保存在此处,然后使用RAR函数打开该文件以提取内容。

采用 basename()获取文件名。

wget -O filename URL && unrar filename

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top