我需要从动态页面制作一个静态页面,下载所有资产并将所有链接转换为本地链接,然后将其下载到某个tmp文件夹中。就像在浏览器中按Ctrl + S时一样。我尝试将wget
与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解决方案,我可以使用,因为这似乎并不难,但需要做很多工作。
答案 0 :(得分:0)
您可以尝试类似的方法
shell_exec("cd some_nice_dir && wget ...")
您可能还想阅读man wget
,因为关于-O
与您指定的其他几个选项之间的干扰,它有很多话要说。
答案 1 :(得分:0)
使用-P标志帮助创建具有拥有www-data的文件夹
shell_exec("wget -E -H -k -p http://mysite.local/ -P some-temp-folder 2>&1")