您好我试图从HTML页面获取此信息,但它没有元素,类,没有它只有<pre>all content</pre>
如何从&#34;中提取值? validTo&#34 ;?以下信息
它不是JSON文件,它只是网页的内容。
[serialNumber] => 984924526890779987
[validFrom] => 180515204024Z
[validTo] => 180807195300Z
[validFrom_time_t] => 1526416824
PHP代码:
<?php
$url = "https://www.google.es";
$orignal_parse = parse_url($url, PHP_URL_HOST);
$get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE)));
$read = stream_socket_client("ssl://".$orignal_parse.":443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $get);
$cert = stream_context_get_params($read);
$certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']);
echo $certinfo
答案 0 :(得分:2)
如果页面的格式与您描述的方式相同,则此类内容将起作用。
// get the webpage - replace your.url with the actual webpage address
$html = file('your.url',FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES) ;
// get your value
foreach($html as $line) {
$result = strpos($line,'[validTo]') ;
if (false !== $result) {
$temp = explode('=>', $line) ;
$validTo = trim($temp[1]) ;
break ;
}
}
答案 1 :(得分:0)
考虑您的文件是否包含此内容
file.html
[serialNumber] => 984924526890779987
[validFrom] => 180515204024Z
[validTo] => 180807195300Z
[validFrom_time_t] => 1526416824
现在,这将提取信息并将其放入名为$arr
的数组中。使用该数组访问每个。
<?php
$data = file_get_contents('http://domain/file.html');
$arr = explode(PHP_EOL, $data);
echo $arr[0];
?>
答案 2 :(得分:0)
您好,您可以使用Regex从字符串中提取更多信息。
<?php
$string = "
<pre>
[serialNumber] => 984924526890779987
[validFrom] => 180515204024Z
[validTo] => 180807195300Z
[validFrom_time_t] => 1526416824
</pre>
";
preg_match('/\[validTo\].[\=\>].*[0-9a-zA-Z]/', $string, $values, PREG_OFFSET_CAPTURE);
print_r($values);
结果是:
Array
(
[0] => Array
(
[0] => [validTo] => 180807195300Z
[1] => 97
)
)