如何在文件名未知时忘记文件?

时间:2010-09-01 13:27:53

标签: php wildcard wget

我正在尝试使用wget自动下载文件并从cron调用php脚本,文件名始终由文件名和日期组成,但日期会根据文件上载的时间而变化。问题是文件何时更新是不确定的,因此在检查目录之前永远不会知道最终名称。

示例文件名是file20100818.tbz

我尝试在wget中使用通配符,但它们都失败了,都使用了*和%

提前致谢,

格雷格

3 个答案:

答案 0 :(得分:3)

假设文件类型是常量,那么从wget手册页:

  

您想要从中下载所有GIF   HTTP服务器上的目录。您   试过wget   http://www.server.com/dir/ *。gif,但是   因为HTTP而无效   检索不支持globbing。   在这种情况下,请使用:

wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

因此,您希望使用-A标志,例如:

wget -r -l1 --no-parent -A.tbz http://www.mysite.com/path/to/files/

答案 1 :(得分:1)

为了清楚起见,因为在搜索“wget and wildcards”时这个帖子出现在谷歌搜索中,并且因为上面的答案没有带来敏感的解决方案而且似乎没有 SO 上的任何其他内容回答:

根据wget手册,您可以在使用 ftp 并使用选项-g on (--glob=on)时使用通配符,但{{1}除非您使用所有wget选项,否则将返回错误。感谢Wiseman20@ubuntuforums向我们展示了方式。

<强> Samplecode:

-r -np -nd

答案 2 :(得分:0)

您可以像这样循环每个日期:

<?php
for($i=0;$i<30;$i++)
{
     $filename = "file".date("Ymd", time() + 86400 * $i).".tbz";
     //try file download, if successful, break out of loop.
?>

您可以增加for循环的尝试次数。