首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中获取一个webspage作为数组时如何忽略无效的ssl证书?

在php中获取一个webspage作为数组时如何忽略无效的ssl证书?
EN

Stack Overflow用户
提问于 2016-07-17 19:02:36
回答 2查看 614关注 0票数 3

我有一台打印机(实际上有几台),我想得到他们的状态页,并做一个小dom解析器,当耗材不足时告诉我。没什么大不了的,除了打印机在加载前抛出一个无效的ssl证书警告。我可以使用wget来获得这样的页面:

代码语言:javascript
复制
$wget -m --no-check-certificates 10.4.102.125

但我宁愿使用php,如果它不是太复杂的话。

下面是我如何将页面作为数组下载的基本示例:

代码语言:javascript
复制
<?php
$target = "http://10.4.102.125";
$downloaded_page_array = file($target);

for($i=0; $i<count($downloaded_page_array); $i++)
   echo $downloaded_page_array[$i];
?>

如何在获取网页时忽略无效的ssl证书,而只转到我想要获取的页面,就像php中的数组一样?

我不想更改我的服务器设置。而且,我从来没有想过如何在这些打印机上成功地升级ssl证书。

EN

回答 2

Stack Overflow用户

发布于 2016-07-17 19:09:20

您可以使用curl

要跳过无效的SSL警告,请使用以下选项:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

例如

代码语言:javascript
复制
<?php 
        // create curl resource 
        $ch = curl_init(); 

        // set url 
        curl_setopt($ch, CURLOPT_URL, "http://10.4.102.125"); 

        //return the transfer as a string 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

        // $output contains the output string 
        $output = curl_exec($ch); 

        // close curl resource to free up system resources 
        curl_close($ch);      
?>
票数 1
EN

Stack Overflow用户

发布于 2016-07-17 19:25:19

由于您使用包装器来检索页面,因此需要设置context options and parameters。在这种情况下,您要查找的选项属于SSL (也适用于HTTPS),我相信您希望禁用此选项:

verify_peer布尔值

要求验证所使用的SSL证书。

设置上下文后,需要将其作为第三个参数传递给file

资源数组文件( string $filename [,

$flags =0, $context ] )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38420510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档