【问题标题】:how to download pdf files from url of website using php如何使用php从网站的url下载pdf文件
【发布时间】:2018-05-26 07:38:30
【问题描述】:

我正在尝试制作一个软件,它可以获取用户关键字并在谷歌上搜索它,找到所有具有该词的 pdf 文件并下载它们的网站。 我能够根据关键字获得谷歌搜索结果的 html,但这些 html 链接没有任何用处,我无法从它们下载 pdf 文件。

<?php
if(isset($_POST['submit'])){

    $endpoint =$_POST['info'];
    $endpoint = str_replace(' ', '+', $endpoint);
    $endpoint= $endpoint.'+pdf';
    $page = file_get_contents('https://www.google.com.pk/search?dcr=0&source=hp&q='.$endpoint.'&oq='.$endpoint.'&gs_l=psy-ab.3..35i39k1l2j0j0i131k1j0l3j0i131k1j0l2.73519.74668.0.75122.9.7.0.0.0.0.424.424.4-1.1.0....0...1.1.64.psy-ab..8.1.422.0...0.U3V3CxpsqhA');

    $dom = new DOMDocument;

    @$dom->loadHTML($page);

    $links = $dom->getElementsByTagName('a');
    foreach ($links as $link){
        echo $link->nodeValue;
        echo $link->getAttribute('href'), '<br>';
    }

}
?>

这是我必须得到的谷歌搜索结果的 html。我有点卡在这里,请指导我现在该怎么办。

【问题讨论】:

  • 请更具体。当您尝试下载 PDF 文件时会发生什么?你有错误吗?什么都没有返回?
  • 我不知道如何下载 pdf.. 使用此代码,我只是得到 html

标签: php pdf


【解决方案1】:

尝试使用file_put_contentsfopen

$url = 'http:// ... ';
file_put_contents('file.pdf', fopen($url, 'r'));

【讨论】:

    【解决方案2】:

    我认为您应该在刚刚抓取的链接上请求文件,并带有正确的标题:

    <?php 
    header("Content-type:application/pdf");
    header("Content-Disposition:attachment;filename='downloaded.pdf'");
    

    或者使用 cURL。 请注意,header() 必须在任何其他输出之前调用,因此您可以将应用流程分为两/三步:

    1. Google 关键字
    2. 向用户显示可能匹配的列表
    3. 让用户选择下载哪一个(并使用 content-type 标头启动请求)

    查看其他答案:https://stackoverflow.com/a/20080402/3279175

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多