Development

Generating a sitemap from a PHP PDO select query

A quick and easy method to generate a sitemap file from a PHP PDO select query with a foreach loop to add each URL into the sitemap.xml

This is all done using the PHP SimpleXmlElement class

<?php

$select_all = $db_connect()->query("SELECT `id`, `created_at` FROM `posts`;");
$posts = $select_all->fetchAll(PDO::FETCH_ASSOC);

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>');

$index = $xml->addChild('url');
$index->addChild('loc', 'https://website.com/');//Add the home URL
$index->addChild('lastmod', '2023-08-20 10:00:00');
$index->addChild('changefreq', 'monthly');
$index->addChild('priority', '0.8');

foreach ($posts as $post) {//Loop through the posts
    $element = $xml->addChild('url');
    $element->addChild('loc', "https://website.com/post/{$post['id']}");
    $element->addChild('lastmod', $post['created_at']);
    $element->addChild('changefreq', 'monthly');
    $element->addChild('priority', '0.5');
}

$xml->asXML('sitemap.xml');//Write sitemap to file

 

Share

Recent Posts

Kennington reservoir drained drone images

A drained and empty Kennington reservoir images from a drone in early July 2024. The…

1 year ago

Merrimu Reservoir drone images

Merrimu Reservoir from drone. Click images to view larger.

1 year ago

FTP getting array of file details such as size using PHP

Using FTP and PHP to get an array of file details such as size and…

2 years ago

Creating Laravel form requests

Creating and using Laravel form requests to create cleaner code, separation and reusability for your…

2 years ago

Improving the default Laravel login and register views

Improving the default Laravel login and register views in such a simple manner but making…

2 years ago

Laravel validation for checking if value exists in the database

Laravel validation for checking if a field value exists in the database. The validation rule…

2 years ago