Pagina 1 din 1

Export din MySQL in XML

Scris: Dum Ian 06, 2013
de cipriand
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

Scris: Dum Ian 06, 2013
de MarPlo
Salut
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>
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").

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
- E simplu, daca-l studiezi putin ca sa intelegi codul, il poti modifica /extinde pt ceea ce iti trebuie.