【发布时间】:2013-02-13 20:46:17
【问题描述】:
以下 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传递它也不会显示输出。我错过了什么?
【问题讨论】:
-
如果将一个空数组作为第二个参数并在执行后将其转储,那么数组中会有什么?它是输出容器。它停止的原因有什么?
-
数组出来为空:array(0) { }
-
如果传递第三个参数,执行后它的值是多少?另外,您可以尝试将 -v 添加到 wget 参数并在此之后转储输出吗?
-
这会导致 array(0) { } 和 int(8)。如果我添加 -O /some/file/nginx/can/access.txt,它会更深一层,但再一次它不会比这更进一步。
-
这不是在 *nix 下运行的,是吗?