domain-expiration/src/Deblan/Parser/SslCertParser.php
2023-11-03 13:40:53 +01:00

54 lines
942 B
PHP

<?php
namespace Deblan\Parser;
/**
* class SslCertParser.
*
* @author Simon Vieille <simon@deblan.fr>
*/
class SslCertParser
{
/**
* @var string
*/
protected $check;
/**
* Constructor.
*
* @param mixed $whois
*/
public function __construct(string $check)
{
$this->check = $check;
}
/**
* Extracts expiry date.
*
* @return DateTime|null
*/
public function getExpiryDate(): ? \DateTime
{
preg_match('/expires in ([^\s]+)\s+/', $this->check, $match);
if (isset($match[1])) {
$days = (int) $match[1];
if ($days > 0) {
$date = 'now +'.$days.' days';
} else {
$date = 'now '.$days.' days';
}
try {
return new \DateTime($date);
} catch (\Exception $e) {
}
}
return null;
}
}