如何使用延迟强制下载的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. 使用file_get_contents读取URL的html
  2. 在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&url=https://filehippo.com/download_mozilla-firefox-64/&Filename=Firefox_Installer.exe"之间
  3. 正如您可能已经注意到的,该页面可能已经预先批准了该请求,因此如果主机使用cookie或其他方法进行检查,则不能保证该页面正常工作
  4. 基于以上内容创建正则表达式,以使用preg_match提取URL
  5. 然后file_get_contents包含要下载的文件的URL

最新更新