Aprende a determinar fácilmente la lectura estimada de cualquier texto (HTML, Markdown) con PHP simple.

Cómo determinar el tiempo de lectura estimado de un texto con PHP

Según múltiples estudios y estadísticas, la medición de la velocidad y la comprensión depende del contenido del texto y de un conjunto de preguntas. La siguiente tabla que no pertenece a una prueba específica nos da una idea general de las eficiencias de lectura:

Pantallas Documento Comprension Perfil de lector
100 wpm 110 wpm 50% Insufficient
200 wpm 240 wpm 60% Average reader
300 wpm 400 wpm 80% Good reader
700 wpm 1000 wpm 85% Excellent, accomplished reader

Según esta tabla, el lector medio lee unas 200 palabras por minuto. Usando este número, podemos determinar fácilmente el tiempo que le tomaría a una persona leer un artículo si tenemos la cantidad de palabras que contiene el texto.

En este artículo, le explicaré cómo determinar fácilmente el tiempo de lectura estimado de cualquier texto (en HTML, markdown o texto sin formato) usando una función PHP simple. Por supuesto, debe saber que es bastante difícil generar un tiempo de lectura estimado 100% exacto, ya que siempre variará, sin embargo, matemáticamente puede proporcionar esta estadística a sus usuarios y su sitio web se verá mejor.

Implementación

La lógica de implementación es la siguiente. Necesitaremos el contenido que usaremos para estimar el tiempo de lectura, este texto será idealmente en texto plano, por lo que antes de usar la lógica para determinar cuánto tiempo se tarda en leerlo, debemos eliminar cualquier contenido que no lo haga. t cuenta como texto sin formato. Por ejemplo, si proporciona su contenido como HTML, hay varias cosas en el contenido que generarían resultados no deseados, al igual que el siguiente contenido, porque si usamos la función str_word_count de PHP para contar las palabras de la siguiente cadena, contaría 8 palabras (si analizas el contenido, en realidad son 8 palabras escritas) pero solo hay una palabra en el texto, a saber, "Bienvenida":

<h1> <span class="highlight">Wel</span>come </h1>

Entonces, para evitar esta inexactitud, necesitamos dividir las etiquetas HTML usando la función strip_tags de PHP que generaría el texto sin formato de nuestro HTML:

 Welcome 

Una vez que tengas la cantidad de palabras, simplemente puedes calcular los minutos que le tomaría leer el contenido simplemente dividiendo la cantidad de palabras entre la tasa de palabras por minuto que una persona puede leer (200 palabras por minuto es un buen promedio, pero puedes cambiarlo). Esto le proporcionará una buena estimación de cuántos minutos le tomaría a un usuario regular leer su contenido. Si también deseas extraer los segundos, solo necesitas dividir el cociente de la división (entre el total de palabras y las palabras por minuto) entre la tasa de palabras por minuto dividida por 60 segundos.

Dicho esto, puedes implementar la función de esta manera, que recibe como primer argumento el texto sin procesar (HTML, Markdown, etc.) y como segundo argumento la tasa de palabras por minuto que desea utilizar para calcular el tiempo de lectura. De forma predeterminada, utilizará 200 palabras por minuto, pero puede proporcionar su propia tasa si lo necesita. La función devolverá una matriz asociativa con 2 teclas (minutos y segundos) que contienen respectivamente la cantidad de tiempo necesaria para leer el texto:

/**
 * Función para calcular el tiempo de lectura estimado del texto dado.
 * 
 * @param string $text El texto para el que se calculará el tiempo de lectura.
 * @param string $wpm La velocidad de uso de palabras por minuto.
 * @return Array
 */
function estimateReadingTime($text, $wpm = 200) {
    $totalWords = str_word_count(strip_tags($text));
    $minutes = floor($totalWords / $wpm);
    $seconds = floor($totalWords % $wpm / ($wpm / 60));
    
    return array(
        'minutes' => $minutes,
        'seconds' => $seconds
    );
}

Esta función se puede utilizar fácilmente así:

// ["minutes" => 0, "seconds" => 2]
estimateReadingTime("<h1>Title</h1><p>This is the content of the article</p>");

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores