Pros du XML WANTED! -- Qui se sent capable de réaliser ceci?

Nouveau WRInaute
Bonjour,

Je lis avec beaucoup d'intérêt les différentes interventions au sujet de ce fameux sitemap depuis quelques jours.

Je possède une sorte de site de rencontres répertoriant des profils d'utilisateurs. Chaque profil est accessible à partir d'une URL sous cette forme :

.../view.php?id=00001
.../view.php?id=00002
.../view.php?id=00003
.../view.php?id=00004

etc.

En fait il y a encore une variable langue qui entre en jeu mais on ne va pas trop compliquer pour l'instant.

Mon site est donc dynamique, comme vous l'aurez compris. IL est écrit en PHP.

J'aimerais pouvoir créer automatiquement un fichier sitemap.xml dans lequel se trouvent les liens vers tous les profils du site. Je sais le faire en PHP, mais pour créer le fichier XML c'est une autre histoire! Mes connaissances en PHP restent tout de même assez limitées et je ne comprends absolument rien au XML :oops:

Comme je ne suis pas du genre à laisser tout faire par les autres, j'ai déjà essayé de réaliser le code qui permet d'afficher la liste de tous les liens sous forme de tableau. Le voici:


Code:
<table>
<?$tmp=mysql_query("SELECT id, fname FROM ".C_MYSQL_MEMBERS." WHERE status > '0' order by regdate DESC");

while($i=mysql_fetch_array($tmp)) {

$name = (trim($i['fname']) == '') ? $i['id'] : $i['fname'];
echo "<tr><td><a href=\"view.php?id=".$i['id']."\">".$name."</a></td></tr>";}?>
</table>


Ce qui donne comme résultat :

(Attention, il s'agit d'un site pour adultes. Ne cliquez pas sur ce lien suivant si vous êtes mineur. Merci)

[Lien supprimé par tuisp selon les règles du forum]


Maintenant, c'est bien joli, mais je ne peux pas soumettre ceci à Google. Quelqu'un saurait-il me réécrire ce code pour qu'il donne un fichier XML compatible selon les paramètres suivants?

Mises à jour : "always"
Priority : "0.9"


Quelqu'un se sent capable de le faire? Est-ce très long à réaliser?
 
WRInaute impliqué
Salut, il suffit de regarder la source d'un fichier xml, tu peux le générer comme un fichier html, le balisage change un peu et tu dois aussi déclarer que le document est en xml dans le header.

Ça ne sert par ailleurs strictement à rien de mettre des priorités si celles ci sont toujours identiques ,)
 
Nouveau WRInaute
Code:
<?
$fichier = 'sitemap.xml';
$fp = fopen($fichier, "w");
$sitemap = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$sitemap .= "<urlset xmlns=\"https://www.google.com/schemas/sitemap/0.84\">\n";
$tmp = mysql_query("SELECT id, fname FROM ".C_MYSQL_MEMBERS." WHERE status > '0' order by regdate DESC");
while($i=mysql_fetch_array($tmp))
{
$sitemap .= "\t<url>\n";
$sitemap .= "\t\t<loc>http://www.[nom_de_domaine].net/view.php?id=".$i['id']."</loc>\n";
$sitemap .= "\t\t<changefreq>always</changefreq>\n";
$sitemap .= "\t\t<priority>0.9</priority>\n";
$sitemap .= "\t</url>\n";
}
$sitemap .= "</urlset>\n";
fwrite($fp, $sitemap);
fclose($fp);
?>

J'ai pas testé mais ça devrai fonctionner.
Par contre il faut spécifier une date ...
 
Nouveau WRInaute
Phobos a dit:
Salut, il suffit de regarder la source d'un fichier xml, tu peux le générer comme un fichier html, le balisage change un peu et tu dois aussi déclarer que le document est en xml dans le header.

C'est justement ce dont je me sentais incapable de faire :(

Ça ne sert par ailleurs strictement à rien de mettre des priorités si celles ci sont toujours identiques ,)

En fait, je ne comptais pas créer seulement ce sitemap. Les profils des utilisateurs ont une priorité de 0,9 par rapport à d'autres pages qui ne seront pas listées dans ce sitemap. Ces autres pages auront, quant à elles, des priorités différentes.




Jok3r : Je termercie infiniment! Je vais déjà essayer de comprendre ce que tu as fait et voir si je peux le faire fonctionner :lol:

Je te tiens au courant!
 
Nouveau WRInaute
Voilà!

Apparemment, ça fonctionne!

[Lien supprimé par tuisp]

Merci!

Maitenant, si je comprend biens, je dois moi même exécuter ce fichier contenant le code source pour mettre à jour le fichier XML? OU est-ce que cela se fait automatiquement?
 
Nouveau WRInaute
J'ai ajouté la date de dernière modification dynamique. Tout semble ok.

Finalement, je pense qu'il vaut mieux que j'éxécute moi-même le script de temps en temps...

Bon, et bien ça fait plaisir d'y être parvenu aussi vite. Un immense merci encore à toi Joker! Tu m'as presque donné envie de m'intéresser de plus près au XML ;)

ET j'espère que ces qques lignes de code serviront à d'autres...

En ce qui me concerne, je vais maintenant ajouter ma variable langue dans tout ça et réaliser un sitemap différent pour chaque langue de mon site.

Merci encore mille fois!
 
Discussions similaires
Haut