通过PHP exec()递归wget只获取第一页?

时间:2013-02-13 20:46:17

标签: php exec wget

以下wget命令可以很好地递归爬网整个域,将下载的文件保存在单个文件夹中,然后将其全部删除:

wget --delete-after -r -nd http://www.example.com/

从命令行运行时,这非常有效。当通过PHP的exec(或system,shell_exec,passthru)运行时,如下所示,它只获取索引页面,但似乎没有更深入:

exec('wget --delete-after -r -nd http://www.example.com/');

如果这是一个权限问题,我认为它也不会下载索引页面,但确实如此(当我取出'--delete-after'时会很明显。)

没有涉及robots.txt,如果我通过echo传递它,则不会显示输出。我错过了什么?

1 个答案:

答案 0 :(得分:0)

毕竟这似乎是一个权限问题,因为添加了--directory-prefix param修复了它。

wget --delete-after -q -r -nd -P /home/example.com/public_html/tmp/ http://www.example.com

我将前缀设置为php-fpm肯定可以访问的目录,而之前我坦率地不知道它在哪里暂时保存文件('。'是默认目录,但那会是什么?)。