Tot caut de cateva zile un code care sa-mi exporte din baza de date din Mysql in XML printr-un fisier php. Am gasit foarte multe variante, dar nici unul nu era acceptat de xml validator.
Astept un raspuns , cu stima Ciprian.
Export din MySQL in XML
-
- Mesaje:18
Export din MySQL in XML
MarPlo
Mesaje:4343
Salut
Daca iti trebuie pentru Sitemap, formatul XML valid e asa (fara '...'):
Poti modifica in scripturile pe care le-ai gasit, sa creeze un XML cu acest format.
Sau poti adapta acest cod, e facut cu PHP PDO. Trebuie sa modifici cu datele tale pentru MySQL si coloana din tabel cu adresa URL a paginilor (in loc de "col_url").
- E simplu, daca-l studiezi putin ca sa intelegi codul, il poti modifica /extinde pt ceea ce iti trebuie.
Daca iti trebuie pentru Sitemap, formatul XML valid e asa (fara '...'):
Cod: Selectaţi tot
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://domeniu.net/</loc>
<priority>0.9</priority>
<changefreq>daily</changefreq>
</url>
<url>
<loc>http://domeniu.net/pagina2</loc>
<priority>0.1</priority>
<changefreq>monthly</changefreq>
</url>
...
</urlset>
Sau poti adapta acest cod, e facut cu PHP PDO. Trebuie sa modifici cu datele tale pentru MySQL si coloana din tabel cu adresa URL a paginilor (in loc de "col_url").
Cod: Selectaţi tot
<?php
$xmlfile = 'sitemap.xml';
// va contine sitemap-ul ce va fi salvat in $xmlfile
$xmlsitemap = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
// Datele de conectare (adresa_server, baza_de_date, nume si parola)
$hostdb = 'localhost';
$namedb = 'teste';
$userdb = 'username';
$passdb = 'password';
try {
// Conectare si creare obiect PDO
$dbh = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$dbh->exec("SET CHARACTER SET utf8"); // Setare encoding caractere UTF-8
// Selectare date
$sql = "SELECT `col_url` FROM `nume_tabel` WHERE 1";
$datas = $dbh->query($sql);
// Daca select-ul e facut cu succes ($datas nu e false)
if($datas !== false) {
// Se parcurg si adauga datele selectate in $xmlsitemap
foreach($datas as $row) {
$xmlsitemap .= '<url>
<loc>'. $row['col_url'] .'</loc>
<priority>0.5</priority>
<changefreq>weekly</changefreq>
</url>';
}
}
$dbh = null; // Deconectare
}
catch(PDOException $e) {
echo $e->getMessage();
}
$xmlsitemap .= '</urlset>';
file_put_contents($xmlfile, $xmlsitemap); // pune sitemap-ul in fisier pe server