Php 从https url复制文件

Php 从https url复制文件,php,Php,我爬过一个网页,在网上获取pdf文档。例如,我从中获得了9个PDF文档,8个PDF的复制过程运行良好,只有一个文档除外。我不知道怎么了,我的连接没有问题。当我直接签出url时,也没关系,我可以手动获取该文档。url以https开头,这是https问题吗?如何解决?我使用复制功能: copy($pdfLink, $savePath . basename($pdfLink)); 错误结果是: Warning: copy(https://www.aclweb.org/anthology/J/J08/

我爬过一个网页,在网上获取pdf文档。例如,我从中获得了9个PDF文档,8个PDF的复制过程运行良好,只有一个文档除外。我不知道怎么了,我的连接没有问题。当我直接签出url时,也没关系,我可以手动获取该文档。url以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

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

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

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


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

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

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

尝试以下操作:

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

copy($pdfLink, $savePath . basename($pdfLink), stream_context_create($opts));
试试这个:

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

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