提问者:小点点

如何使用PHP下载延迟强制下载的文件?


在我需要从URL下载文件的情况下,使用直接文件URL(如https://somedomain.com/some-path/somefile.exe)很容易

file_put_contents( $save_file_loc, file_get_contents($url_to_download);

但是,当您延迟了从实际打印HTML的URL强制下载时,该怎么办?如何区分这些URL?

示例URL:https://filehippo.com/download_mozilla-firefox-64/post_download/

编辑:在上面的url文件下载开始使用JS,因为我测试了阻止JS和下载没有开始。

提前感谢你的帮助。


共1个答案

匿名用户

  1. 使用file_get_contents
  2. 读取URL的html
  3. 在HTML中查找文件的URL。 您必须访问页面和视图源来定位URL。 在您的https://filehippo.com/download_mozilla-firefox-64/post_download/示例中,它位于data-qa-download-url=“https://dl5.filehippo.com/367/fb9/ef3863463463b174ae36c8bf09a90145/firefox_installer.exe?expires=1594425587&signature=18ab87cedcf3464363469231db54575665668c4f6
  4. 您可能已经注意到,页面可能已经预先批准了请求,因此如果主机使用cookie或其他方法进行检查,则无法保证该请求正常工作。
  5. 基于上述内容创建正则表达式,以便使用preg_match
  6. 提取URL
  7. 则file_get_contents为要下载它的文件的URL.