Analizar fuentes RSS y Atom con PHP

Olorunfemi Akinlua 15 febrero 2024
  1. Utilice implode() y simplexml_load_string() para analizar fuentes RSS en PHP
  2. Utilice simplexml_load_file() para analizar fuentes RSS en PHP
Analizar fuentes RSS y Atom con PHP

RSS (Really Simple Syndication) era una fuente popular que permitía a los primeros usuarios de Internet acceder a actualizaciones de sitios web en un formato legible concurrente y consistente, al igual que JSON para las API. Sin embargo, RSS rara vez es popular hoy en día y la última versión estable para el formato fue en 2009, hace 13 años.

Al igual que obtener y leer JSON en PHP o analizar HTML, podemos utilizar funciones integradas de PHP para obtener y analizar fuentes RSS en PHP.

En este artículo, analizamos la biblioteca PHP, que tiene dos funciones integradas que nos ayudarán a analizar RSS en PHP y una función integrada para ayudar con todo el proceso.

Utilice implode() y simplexml_load_string() para analizar fuentes RSS en PHP

La biblioteca SimpleXML contiene toneladas de funciones que pueden trabajar con XML para convertirlas en objetos que podemos usar PHP para manipular. La primera función es simplexml_load_string() que nos ayudará a analizar las fuentes RSS en PHP.

Para entender cómo analizar la fuente RSS, usaremos esta fuente RSS, The Daily by New York Times, y obtendremos la matriz de todo el contenido que está dentro de la fuente.

La función file() lee la fuente RSS y devuelve una matriz de todo el contenido, y la función implode() luego une todos los elementos de la matriz en una cadena y devuelve una cadena.

Este valor de cadena se pasa a simplexml_load_string(), que interpreta una cadena de XML en un objeto que luego se codifica con la función json_encode() y se decodifica en una matriz con la función json_decode() que podemos trabajar con.

<?php

$feed = implode(file('https://feeds.simplecast.com/54nAGcIl'));
$xml = simplexml_load_string($feed);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

var_dump($array);
?>

Producción:

Use la cadena de carga implode y simplexml para analizar fuentes RSS en PHP

Utilice simplexml_load_file() para analizar fuentes RSS en PHP

Al igual que simplexml_load_string(), la función simpleml_load_file() interpreta un XML.

Sin embargo, el archivo XML interpreta en lugar de la cadena XML en este caso. También devuelve un objeto.

Dado que ambos devuelven los mismos valores, en este código, recorremos el código para seleccionar valores específicos del título, enlace, descripción y fecha de publicación, que se pueden aplicar al fragmento de código anterior.

Para ello, utilizamos la etiqueta channel, que es un objeto hijo de $xml, y luego el item[$i], que es un nieto de la etiqueta, lo que nos permite obtener acceso a diferentes propiedades (objeto) como título, enlace, etc.

<?php

$url = "https://feeds.simplecast.com/54nAGcIl";

$xml = simplexml_load_file($url);

for ($i = 0; $i < 2; $i++) {

    $title = $xml->channel->item[$i]->title;
    $link = $xml->channel->item[$i]->link;
    $description = $xml->channel->item[$i]->description;
    $pubDate = $xml->channel->item[$i]->pubDate;

    echo "\nThe Title: " . $title . ".\n";
    echo "\nChannel Link: " . $link . ".\n";
    echo "\nChannel Description: " . $description . ".\n";
    echo "\nDate of Publication: " . $pubDate . ".\n";
}
?>

Producción:

Use el archivo de carga simplexml para analizar fuentes RSS en PHP

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn