To convert a JSON feed to RSS in PHP, you will need to parse the JSON feed data and use the SimpleXML
extension to create an RSS feed. Here is an example of how you might do this:
- Retrieve the JSON feed data using
file_get_contents()
orcurl
.
$json_feed_url = 'http://example.com/feed.json';
$json_feed_data = file_get_contents( $json_feed_url );
- Decode the JSON feed data using
json_decode()
.
$feed_items = json_decode( $json_feed_data );
- Create a new
SimpleXMLElement
object to represent the RSS feed.
$rss = new SimpleXMLElement( '<rss version="2.0"></rss>' );
Add the necessary elements to the RSS feed. You will need to include the <channel>
element, as well as <item>
elements for each feed item.
$channel = $rss->addChild( 'channel' );
$channel->addChild( 'title', $feed_items['title'] );
$channel->addChild( 'link', $feed_items['link'] );
$channel->addChild( 'description', $feed_items['description'] );
foreach ( $feed_items['items'] as $item ) {
$rss_item = $channel->addChild( 'item' );
$rss_item->addChild( 'title', $item['title'] );
$rss_item->addChild( 'link', $item['link'] );
$rss_item->addChild( 'description', $item['description'] );
}
In this example, $feed_items
is an array that represents the JSON feed data. The title
, link
, and description
elements are taken from the JSON feed data, and the items
array is used to create <item>
elements for each feed item.
- Output the RSS feed as XML using
asXML()
.
header( 'Content-Type: application/rss+xml' );
echo $rss->asXML();
This will send the RSS feed to the browser as an XML document. You can also save the RSS feed to a file using $rss->asXML( 'feed.xml' )
.
It’s worth noting that this is just a basic example, and you may need to modify the code to fit the specific structure of your JSON feed. You can find more information on the SimpleXML
extension in the PHP documentation.
Last modified: January 13, 2023