通过curl和preg_match问题获取域名到期日期/注册日期

时间:2014-07-22 09:49:40

标签: php regex curl

我正在尝试获取某个域的过期日期/注册日期,但最终会得到一个非常意外的结果,我在数组中得到3个具有相同值的元素。

$domain = trim($domain); // ex google.com
$url = "http://who.is/whois/".$domain;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_exec($ch);
curl_close($ch);
$result = trim($result);
$result = preg_match('/(<span data-bind-domain="expiration_date" style="visibility: visible;">(.*?)<\/span>){1}/', $result, $matches);
var_dump($matches);

//输出

array(3) { 
     [0]=> string(95) "September 14, 2020" 
     [1]=> string(95) "September 14, 2020" 
     [2]=> string(18) "September 14, 2020" 
}

我试图获取并存入一个变量的过期日期和另一个变量注册日期+前两个数组在只有18个字符串时发送95个字符串。

我错了什么

ADDED

$result = preg_match('#<td><span data-bind-domain="expiration_date" style="visibility: visible;">(.*?)</span></td>#', $result, $matches);

而不是

$result = preg_match('/(<span data-bind-domain="expiration_date" style="visibility: visible;">(.*?)<\/span>){1}/', $result, $matches);

现在输出非常奇怪,而不是说它是什么类型的变量,第一个日期。 2020年9月14日,不说是字符串还是数组。

1 个答案:

答案 0 :(得分:1)

检查一下:         http://www.nott.org/blog/php-whois-script.html
一些注册商提供API,这将使您的工作更轻松:http://opensrs.com/site/integration/api