1

我爬了一个网络来获取网络上的 pdf 文档。例如,我从中获得了 9 个 PDF 文档,并且 8 个 PDF 的复制过程运行良好,除了一个文档。我不知道怎么回事,我的连接没有问题。当我直接查看网址时,也可以,我可以手动获取该文档。网址以https开头,是https的问题吗?如何解决?我使用复制功能:

copy($pdfLink, $savePath . basename($pdfLink));

错误结果是:

Warning: copy(https://www.aclweb.org/anthology/J/J08/J08-1004.pdf) [function.copy]: failed to open stream: Invalid argument in D:\AppServ\www\suksesfunctionWrapper.php on line 19
4

3 回答 3

3

在我看来,您需要调整 php.ini 文件中的设置,以便您可以发出 https 请求。如果您对 URL 进行硬编码,只需将 https 替换为 http。

于 2012-09-27T00:48:44.873 回答
2

您可能需要在 php 中启用 ssl,因为该文件来自 https 源。

我相信扩展启用是openssl。在 php.ini 中查找加载 php_openssl.dll 的行并取消注释。

于 2012-09-27T01:00:40.673 回答
0

试试这个:

$opts = array(
    "ssl"=>array(
        "allow_self_signed"=>true,
        "verify_peer"=>false,
        "verify_peer_name"=>false
    )
);

copy($pdfLink, $savePath . basename($pdfLink), stream_context_create($opts));
于 2020-12-08T12:42:16.743 回答