PHP Estimated Reading Time Code Snippet

<?php

function calcReadingTime(string $text): int
{
    // 1: return `0` for empty text
    if (empty($text)) {
        return 0;
    }

    // 2: define average reading speed in words per minute
    $wordsPerMin = 200;

    // 3: strip all HTML tags from text
    $textOnly = strip_tags($text);
    // 4: count words in stripped text
    $wordsCount = str_word_count($textOnly);

    // 5: calculate reading time
    return ceil($wordsCount / $wordsPerMin);
}
$text =<<<STR
    <p>
      Convallis lectus, accumsan ad egestas blandit sollicitudin. Dictumst parturient ut nam fusce erat sociosqu. Fusce ut est morbi eleifend maecenas aptent hendrerit sagittis eu. Tempus commodo, taciti dictumst netus velit. Eros integer semper porttitor proin suspendisse cum erat nostra dictum ipsum praesent. Nibh velit proin viverra, risus eu. Semper semper parturient lobortis dapibus ridiculus orci.
    </p>
    <p>
      Sociis suspendisse varius ullamcorper euismod, curabitur semper placerat scelerisque cras litora tristique inceptos! Dis orci sem ad tellus curabitur mi! Ultrices varius sagittis felis hac placerat purus erat morbi vestibulum magnis dictum. Convallis gravida cras in cursus erat vestibulum congue. Cubilia iaculis tellus vulputate iaculis cursus lorem phasellus. Mus vestibulum etiam nisi elementum libero. Proin class id eget sodales?
    </p>
    <p>
      Sed venenatis, orci enim felis sodales venenatis. Vulputate ante aptent leo fames fames elit duis viverra. Feugiat sit bibendum in id aliquet. Egestas tempus mauris turpis sit, ridiculus ultrices ad aptent. Ut feugiat, arcu mattis ad parturient cras scelerisque justo habitasse tempor. Risus iaculis mauris adipiscing aenean. Urna accumsan magna dis lectus lobortis mattis tincidunt proin iaculis. Luctus euismod posuere amet a odio nascetur inceptos. Quisque ridiculus sit phasellus cum odio tincidunt sapien mi aliquet blandit. Pharetra?
    </p>
STR;

echo calcReadingTime($text) . ' min(s)'; // '1 min(s)'

This post was published (and was last revised ) by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.