我有一台打印机(实际上是几台),我想获取他们的状态页面,并在供应不足时制作一个小的 dom 解析器告诉我。没什么大不了的,除了打印机在加载前抛出无效的 SSL 证书警告。我可以使用wget来获取这样的页面:
$wget -m --no-check-certificates 10.4.102.125
但我宁愿只使用 php,如果它不是太复杂的话。
以下是如何将页面下载为数组的基本示例:
<?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证书。
你可以
使用 curl
要跳过无效的 SSL 警告,请使用以下选项:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
例如
<?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);
?>
由于您使用包装器来检索页面,因此您需要设置上下文选项和参数。在这种情况下,您正在寻找的选项属于SSL(也适用于HTTPS),我相信您要禁用此功能:
verify_peer
布尔值要求验证所使用的 SSL 证书。
设置上下文后,需要将其作为第三个参数传递给文件:
array file ( string $filename [, int $flags = 0 [, resource $context ]] )