如何用PHP显示当前网页域名的创建年份
修改后的PHP代码(仅输出当前域名创建年份)
<?php // 获取当前网页的域名 $currentDomain = $_SERVER['HTTP_HOST']; // 获取域名创建日期并提取年份 $createYear = getDomainCreationYear($currentDomain); // 仅输出年份(如果获取成功) if ($createYear) { echo $createYear; } else { echo "无法获取域名创建年份"; } function getDomainCreationYear($domain) { // 初始化curl请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://rdap.org/domain/{$domain}"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置超时时间,避免请求挂起 curl_setopt($ch, CURLOPT_TIMEOUT, 10); $response = curl_exec($ch); // 检查curl请求是否成功 if (curl_errno($ch)) { curl_close($ch); return false; } curl_close($ch); // 解析JSON数据 $data = json_decode($response, true); if (!$data || !isset($data['events'])) { return false; } // 遍历events数组,找到"registration"类型的事件(对应域名注册日期) foreach ($data['events'] as $event) { if ($event['eventAction'] === 'registration') { $eventDate = $event['eventDate']; // 提取年份 return date('Y', strtotime($eventDate)); } } // 兼容部分域名的RDAP数据, fallback到第一个事件 if (isset($data['events'][0]['eventDate'])) { $eventDate = $data['events'][0]['eventDate']; return date('Y', strtotime($eventDate)); } return false; }
关键修改说明
- 获取当前域名:用
$_SERVER['HTTP_HOST']直接获取当前访问的域名,无需手动指定固定URL,适配当前网页的域名。 - 仅输出年份:通过
date('Y', strtotime($eventDate))从RDAP返回的日期字符串中提取年份,满足仅输出年份的需求。 - 提升可靠性:
- 增加curl错误检查,避免请求失败导致的解析错误;
- 优先查找
registration类型的事件(RDAP标准中该类型对应域名注册日期),比原代码直接取第一个事件更准确; - 增加JSON解析失败的判断,避免数组索引报错。
- 简化逻辑:原函数需要解析URL提取域名,现在直接传入
$_SERVER['HTTP_HOST'],省去parse_url步骤,更高效。
内容的提问来源于stack exchange,提问作者Shamrox425
相关产品推荐
相关产品推荐

