如何在PHP中显示网页的域名创建年份

问题描述 投票:0回答:1

我正在尝试显示使用 PHP 创建网站域的年份。只是显示该网页的年份,没有其他内容。

到目前为止,我发现了 Greg Randall 的代码,它非常接近我正在寻找的代码。

<?php
$url = "https://example.com/";
echo "Domain Create Date of $url " . date( 'F Y', strtotime( domainCreate($url) ) ) . " (" . domainCreate($url) . ")";

function domainCreate($url){
    $parsed = parse_url( $url );
    $domain = trim( $parsed[ 'host' ] );

    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, "http://rdap.org/domain/$domain" );
    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    $data = curl_exec( $ch );
    $data = json_decode( $data, true );
    curl_close( $ch );

    return( $data[ 'events' ][ 0 ][ 'eventDate' ] );
}

?>

输出:

Domain Create Date of https://example.com/ August 1995 (1995-08-14T04:00:00Z)

我需要它来引用它所显示的网站。也许

($_SERVER['HTTP_HOST'])
?并且只输出年份。

添加注释:我进行了谷歌搜索,并在另一篇文章中找到了上面的示例。当我发布回复询问如何获取引用当前页面的代码时,管理员删除了它。这就是为什么我必须提出自己的问题。我尝试了很多变体,但仍然出现解析错误。我整天都在阅读和研究,我仍在学习。我已经精疲力尽,决定寻求帮助。

php display creation tld year2038
1个回答
0
投票

首先,您将以 JSON 格式返回 $events 的第一项,但它可能不是注册日期。要解决此问题,您需要修改代码

return( $data[ 'events' ][ 0 ][ 'eventDate' ] );

到此

$events = $data[ 'events' ];
$registrationDate = null;
forearch( $events as $event ){
    if( !isset($event['eventAction']) || $event['eventAction'] != 'registration' ){
        continue;
    }
    if(isset($event['eventDate'])){
        $registrationDate = $event['eventDate'];
        break;
    }
}

return $registrationDate;

此外,似乎有接受域名,而不是URL。您需要删除代码中的

http://
和子域。意味着传递给函数的变量应该是
example.com
而不是
http://www.example.com/

© www.soinside.com 2019 - 2024. All rights reserved.