【问题标题】:In PHP, how to download multiple files of same type with cURL from web directory?在 PHP 中,如何使用 cURL 从 web 目录下载多个相同类型的文件?
【发布时间】:2019-06-14 09:38:38
【问题描述】:

我是 PHP 新手,但是,我有一个需要广泛使用的 cURL 函数的任务。通过 PHP,我想将所有 XML 文件从 here 下载到我自己服务器上的特定目录(PHP 文件也将在同一台服务器上执行)。

我找到了很多关于如何下载具有固定 URL 的特定文件的解释,但并非所有来自 Web 目录的相同类型的文件。

【问题讨论】:

  • 您通常会使用 FTP 来下载文件目录。你能获得 FTP 访问权限吗?
  • 嗨基子!不幸的是,上面的链接是我唯一的来源,没有 FTP 访问权限
  • 那么剩下要做的就是解析 HTML 中的文件名,然后下载它们。
  • 可能是相关的,如果你不是严格要求使用 curl:superuser.com/questions/200426/curl-to-download-a-directory
  • 你只需要一个网络爬虫。由于没有 JS,我建议 Goutte - 您可以使用 CSS 表达式列出元素,然后依次跟踪每个元素。

标签: php curl


【解决方案1】:

我以too broad 投票结束这个问题,你需要在这里弄清楚两件不同的事情,

1:如何用 curl 下载东西(你可以在 stackoverflow 上找到无数的例子,curl_exec manual 也有一个不错的例子)

2:如何从 HTML 中解析出链接(你可以在 SO 上找到无数的例子,例如this post 有一个很好的列表)

尝试弄清楚如何按顺序执行这 2 件事,如果您在其中一个步骤中遇到具体问题需要帮助,请尝试为此发布新帖子。

一旦你知道如何使用 curl 获取页面,你就可以获取页面,一旦你知道如何使用 PHP 解析 HTML,你就可以解析出链接,然后你就可以简单地获取在HTML。我建议您从 curl_exec() 手册开始,至于解析链接,请尝试使用 DOMDocument,例如

$domd=@DOMDocument::loadHTML($html); 
foreach($html->getElementsByTagName("a") as $link){
    echo "found a link: ".$link->getAttribute("href").PHP_EOL;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2011-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多