Buradaki HTML ve JavaScript kodlarını bonus olarak veriyorum umarım işinizi görür.

index.html veya index.php
<!DOCTYPE html>
<html>
<head>
    <title>Telegram</title>
    <link href="https://fonts.googleapis.com/css?family=Playfair+Display:400,500,600&subset=latin-ext" rel="stylesheet"/>
    <link rel="stylesheet" type="text/css" href="https://unpkg.com/nprogress@0.2.0/nprogress.css">
    <style type="text/css">
        body{font-family:'Playfair Display';font-size:14px;background-color:#f4f4f4}
        .box{max-width:760px;margin:0 auto;box-shadow:0 2px 4px 0 rgb(186 186 186 / 50%);background-color:#fff;border-radius:4px;margin-bottom:1em}
        .box.hide{display:none}
        .box-title{padding:15px 35px;border-bottom:1px solid #ddd;font-weight:500}
        .box-content{padding:35px}
        .box-info{border-top:1px solid #ddd;padding:15px 35px;font-size:12px}
        form .input{margin-bottom:1em}
        form .input label{display:block;font-weight:600;margin-bottom:5px}
        form .input input, form .input textarea{box-sizing:border-box;font:inherit;border:0;font-size:13px;border:1px solid #ddd;border-radius:3px;height:38px;border-radius:3px;padding:10px 15px;display:block;width:100%}
        form .input textarea{height:inherit}
        form .input input:focus, form .input textarea:focus{outline:none}
        form .input small{opacity:.5;font-size:12px}
        form button{box-sizing:border-box;font-family:inherit;font-size:13px;border-radius:4px;padding:10px 15px;border:0;color:#fff;font-weight:500;cursor:pointer;width:100%;background-color:#000;opacity:.2;cursor:not-allowed}
        form button.active{opacity:1;cursor:pointer;background-color:#1ABC9C}
        .channel{display:flex;margin-bottom:2em;align-items:center}
        .channel .image{width:80px;height:80px;background-color:#eee;margin-right:10px;background-size:100%}
        .channel .about strong{display:block;font-weight:600}
        .swal2-title{font-size:inherit!important}
        .swal2-content{font-size:inherit!important}
        .swal2-styled.swal2-confirm{font-size:13px!important;box-shadow:none!important}
        .swal2-actions button{margin-right:5px;box-shadow:none;text-shadow:none;border:0}
        .swal2-actions button:focus{box-shadow:none;outline:none}
        .swal2-actions button.swal2-styled{font-size:14px}
        .swal2-actions button:last-child{margin-right:0}
        .btn-danger{background-color:#C0392B}
        .btn-success{background-color:#27AE60}
        .swal2-actions .btn{margin-right:1em}
        .swal2-actions .btn:last-child{margin-right:0}
    </style>
</head>
<body>
    <div class="box" data-step="NewChannel">
        <div class="box-title">Yeni Kanal Ekle</div>
        <div class="box-content">
            <form>
                <div class="input">
                    <label>Telegram davet bağlantısı (Örn: https://t.me/XXXXX şeklinde olmalıdır.)</label>
                    <input type="text" name="url" value="">
                    <small>'https://t.me/' ile birlikte girin.</small>
                </div>
                <button>Getir</button>
            </form>
        </div>
        <div class="box-info">
            <strong>Not:</strong> Telegram fotoğrafınız ve abone sayınız, neredeyse her gün otomatik olarak güncellenecek!
        </div>
    </div>

    <div class="box hide" data-step="Channel">
        <div class="box-title">Kanal Bilgileri</div>
        <div class="box-content">
            <form>
                <div class="channel">
                    <div class="image"></div>
                    <div class="about">
                        <strong></strong>
                        <span></span>
                    </div>
                </div>
                <div class="input">
                    <label>İlan Adı</label>
                    <input type="text" name="title">
                    <small>45 karakterden az olmalı.</small>
                </div>
                <div class="input">
                    <label>Kısa Açıklama</label>
                    <textarea name="content"></textarea>
                    <small>Listeleme sayfasında kullanılmaktadır.</small>
                </div>
                <button>Tamamlandı</button>
            </form>
        </div>
    </div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js"></script>
    <script src="https://unpkg.com/nprogress@0.2.0/nprogress.js"></script>
    <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script>
        $("input[name=url]").bind("input", function(){
            $("[data-step=NewChannel] button").removeClass("active");
            if ($(this).val().substr(0,13) == 'https://t.me/' && $(this).val().length > 13) {
                $("[data-step=NewChannel] button").addClass("active");
            }
        });

        $("[data-step=NewChannel] button").click(function(event){
            event.preventDefault();
            if ( ! $(this).hasClass("active")) return;
            $(this).removeClass("active");

            NProgress.configure({parent: '[data-step=NewChannel]'});
            NProgress.start();
            $.ajax({
                url: "json.php",
                type: "POST",
                dataType: "JSON",
                data: {url: $("input[name=url]").val()},
                success: function(json){
                    NProgress.done();
                    if (json.status) {
                        if ( ! json.channel.total.members && ! json.channel.total.subscribers) {
                            Swal.fire({
                                icon: 'error',
                                title: 'Eklemeye çalıştığınız hesap kanal değil!',
                                showConfirmButton: false,
                                timer: 1500
                            });
                            return;
                        }

                        Swal.fire({
                            icon: 'success',
                            title: 'Kanal Bilgileri başarıyla çekilmiştir.',
                            showConfirmButton: false,
                            timer: 1500
                        });

                        $(".channel .image").css("background-image", "url(" + json.channel.image + ")");
                        $(".channel .about strong").text(json.channel.title);
                        $(".channel .about span").text(json.channel.total.members ? json.channel.total.members : json.channel.total.subscribers);

                        $("input[name=title]").val(json.channel.title);
                        $("textarea[name=content]").val(json.channel.title + " Telegram Kanalı");

                        $("[data-step=Channel]").slideDown();
                    } else {

                    }
                }
            });
        });
    </script>
</body>
</html>
json.php
<?php
header('Content-type: application/json');

preg_match('#^https\:\/\/t\.me\/(.+?)$#si', $_POST['url']) OR exit(json_encode(array('status' => false, 'message' => 'Invalid URL')));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_POST['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$buffer = curl_exec($ch);
$status = curl_errno($ch);
curl_close($ch);


if ($status) {
    exit(json_encode(array('status' => false, 'message' => curl_getinfo($ch))));
}

$buffer = str_replace(array("\t", "\r", "\n"), '', $buffer);
$buffer = str_replace('> <', '><', $buffer);
$buffer = str_replace('  ', '', $buffer);
$buffer = str_replace('> <', '><', $buffer);
$buffer = str_replace("\" />", "\"/>", $buffer);
$buffer = str_replace(' dir="auto"', '', $buffer);

// Members, Online, Subscribers
preg_match('#<div class="tgme_page_extra">(.+?)</div>#si', $buffer, $match);

$channel = $members = $online = $subscribers = $photo = '';

if (isset($match[1])) {
    foreach (explode(', ', $match[1]) as $segment) {
        if (strpos($segment, 'members'))
            $members = (int) str_replace(' ', '', stristr($segment, ' members', true));
        elseif (strpos($segment, 'online'))
            $online = (int) str_replace(' ', '', stristr($segment, ' online', true));
        elseif (strpos($segment, 'subscribers'))
            $subscribers = (int) str_replace(' ', '', stristr($segment, ' subscribers', true));
    }
}

// Channel Name
preg_match('#<div class="tgme_page_title"><span>(.+?)</span></div>#si', $buffer, $match);
$channel = $match[1];

// Channel Photo
preg_match('#<img class="tgme_page_photo_image" src="(.+?)">#si', $buffer, $match);
if (isset($match[1])) {
    $photo = $match[1];
}

// Structured Data
$data = array(
    'status' => true,
    'channel' => array(
        'title' => $channel,
        'total' => array(
            'subscribers' => $subscribers,
            'members' => $members,
            'online' => $online
        ),
        'image' => $photo
    )
);

exit(json_encode($data));
Sonuç;