1

我需要从动态页面制作一个静态页面,下载所有资产并将所有链接转换为本地链接,并将其下载到某个 tmp 文件夹中。就像在浏览器中按 Ctrl+S 一样。我尝试使用wgetwith shell_exec

shell_exec("wget -E -H -k -p http://youmightnotneedjquery.com/  2>&1");

问题是当我从控制台运行它时它工作得很好,但是当我使用时shell_exec,我得到一个错误

权限被拒绝 youmightnotneedjquery.com/index.html:没有这样的文件或目录无法写入“youmightnotneedjquery.com/index.html”(没有这样的文件或目录)。

据我了解,权限存在一些问题,我尝试创建一个具有一些高权限和 www-data 作为所有者的单独目录,并使用 -O 标志在命令中指定它,但我收到一个我无法使用的错误-k 和 -O 标志同时进行。所以我希望通过许可来解决这个问题,但我仍然必须以某种方式指定目标文件夹。或者也许有一个我可以使用的没有 wget 的 php 解决方案,因为它似乎并不难,但有很多工作要做。

4

2 回答 2

0

你可以尝试类似 shell_exec("cd some_nice_dir && wget ...")

您可能还想继续阅读,因为它对您指定的其他几个选项man wget之间的干扰有很多话要说。-O

于 2019-09-15T14:22:47.313 回答
0

帮助使用 -P 标志并使用拥有的 www-data 创建文件夹

shell_exec("wget -E -H -k -p http://mysite.local/ -P some-temp-folder 2>&1")
于 2019-09-15T15:35:52.183 回答