تست سئو


سئو، سئو و سئو!

سئو جدیداً به یکی از دغدغه‌های جدی علی تبدیل شده است. او دائماً صفحات وب‌سایت خود را چک می‌کند تا اشتباهی از او سر نزده باشد که باعث افت رنک وبسایتش شود. به همین دلیل، علی به‌صورت جدی در تلاش است تا برنامه‌ای بنویسد تا صفحات سایتش را از لحاظ سئو بررسی کند.

او از شما برای نوشتن چنین برنامه‌ای کمک خواسته است.

جزئیات پروژه🔗

پروژه‌ی اولیه را از این لینک دانلود کنید.

پروژه‌ی اولیه شامل فایلی با نام seoScore.php است که تابعی با نام seoScore در آن تعریف شده. امضای این تابع به‌صورت زیر است:

function seoScore(string $html): int
{
    // TODO: Implement
}
PHP

این تابع باید با دریافت محتویات HTML یک صفحه در قالب یک رشته، آن را از لحاظ سئو بررسی کند و امتیازی در قالب یک عدد صحیح برگرداند.

برای بررسی صفحه و اختصاص امتیاز به آن باید به نکات زیر توجه کنید:

  • اگر صفحه دارای تگ title بود و تعداد کاراکتر‌های محتوای این تگ کوچک‌تر یا مساوی ۶۰ بود، ۱۰ امتیاز و اگر بیشتر از ۶۰ کاراکتر بود، ۷ امتیاز اضافه شود. تضمین می‌شود که این تگ در صورت وجود، بدون attribute و به شکل زیر خواهد بود:
    <title>Page Title</title>
    HTML
  • اگر صفحه دارای تگ meta با نام description بود و تعداد کاراکتر‌های محتوای ویژگی content این تگ کوچک‌تر یا مساوی ۱۶۰ بود، ۱۰ امتیاز و اگر بیشتر از ۱۶۰ کاراکتر بود، ۷ امتیاز اضافه شود. تضمین می‌شود که این تگ در صورت وجود، با این ترتیب از attribute ها خواهد بود:
    <meta name="description" content="description-content">
    HTML
  • اگر صفحه دارای تگ meta با نام viewport بود، ۱۰ امتیاز اضافه شود. تضمین می‌شود که این تگ در صورت وجود، با این ترتیب از attribute ها خواهد بود:
    <meta name="viewport" content="viewport-content">
    HTML
  • اگر صفحه دارای تگ meta با نام robots بود، ۱۰ امتیاز اضافه شود. تضمین می‌شود که این تگ در صورت وجود، با این ترتیب از attribute ها خواهد بود:
    <meta name="robots" content="robots-content">
    HTML
  • اگر صفحه دارای تگ meta با ویژگی charset بود، ۱۰ امتیاز اضافه شود. تضمین می‌شود که این تگ در صورت وجود، با این ترتیب از attribute ها خواهد بود:
    <meta charset="charset-value">
    HTML
  • اگر صفحه دارای یک تگ h1 بود، ۱۰ امتیاز و اگر بیشتر از یک تگ h1 بود، ۷ امتیاز اضافه شود. تضمین می‌شود که این تگ در صورت وجود، بدون attribute است.
  • اگر صفحه دارای تگ‌های h2 یا h3 بود، به ازای هر یک از این تگ‌ها ۵ امتیاز اضافه شود (تعداد تگ‌های h2 و h3 اهمیتی ندارد). تضمین می‌شود که این تگ‌ها در صورت وجود، بدون attribute هستند.
  • اگر صفحه دارای تگ‌های معنایی بود، به ازای هر یک از این تگ‌ها ۱۰ امتیاز اضافه شود (تگ‌های معنایی یا semantic tags در این سؤال شامل header، section و footer است؛ تعداد دفعات تکرار آن‌ها اهمیتی ندارد). تضمین می‌شود که این تگ‌ها در صورت وجود، بدون attribute هستند.

نکات🔗

  • ممکن است در ابتدا یا انتهای محتویات تگ‌ها و attribute ها whitespace آمده باشد. برای بررسی طول این متون، باید whitespace ابتدا و انتها را نادیده بگیرید (آن‌ها را trim کنید).
  • ممکن است محتویات تگ‌ها خالی باشد. برای مثال، اگر یک تگ footer بدون محتوا در HTML موجود باشد، باید ۱۰ امتیاز اضافه شود.
  • تضمین می‌شود که نام تگ‌ها و attribute ها با حروف کوچک انگلیسی هستند.
  • تضمین می‌شود که رشته‌ی HTML ورودی از نظر سینتکس معتبر است.
  • در صورت تمایل، می‌توانید توابع و کلاس‌های دیگری نیز در فایل seoScore.php پیاده‌سازی کنید.

مثال🔗

پس از پیاده‌سازی متد seoScore، با اجرای کد زیر:

<?php

function seoScore(string $html): int
{
    // TODO: Implement
}

$html =
    '<!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Quera</title>
        <meta name="description" content="quera-codecup-college-magnet">
        <meta name="robots" content="index, follow">
    </head>
    <body>
    <header>
        <h1>Quera</h1>
    </header>
    <section>
        <h2>Quera</h2>
        <h3>Quera</h3>
        <h3>Quera</h3>
        <h3>Quera</h3>
    </section>
    <footer>
        <h2>Quera</h2>
    </footer>
    </body>
    </html>';

echo seoScore($html);
PHP

خروجی باید به‌صورت زیر باشد:

100
Plain text

آن‌چه باید آپلود کنید🔗

یک فایل PHP که تابع seoScore در آن پیاده‌سازی شده است آپلود کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.