PDA

Voir la version complète : Comment scanner des flux rss/xml



other_fr
19/09/2008, 18h20
Voilà il faut bien commencer, alors je me lance, je vais tenter de vous pondre un tutoriel pour scanner
les flux RSS/XML des dumps de vos partenaires.?;

Pour cela on va procéder en deux étapes:

1) Création de la base de données dans laquelle nous allons entrer le nom des champs pour chaque site partenaire.

2) Le code php pour scanner les flux et récupérer les données qui y sont insérées pour pouvoir les insérer dans votre base de données..


C'est assez simple, vous pourrez une fois le principe de base l'adapter à vos besoins.


Etape 1: Création de la table pour insérer les données des flux de vos partenaires

Nous avons besoin de 7 champs dans notre table, table que nous appellerons partner_info



Code pour créer notre table partner_info



CREATE TABLE `partner_info` (
`id` SMALLINT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`site_url` VARCHAR( 100 ) NOT NULL ,
`url_flux` VARCHAR( 150 ) NOT NULL ,
`champ_titre` VARCHAR( 100 ) NOT NULL ,
`champ_descri` VARCHAR( 200 ) NOT NULL ,
`champ_url_video` VARCHAR( 150 ) NOT NULL ,
`champ_url_thumb` VARCHAR( 150 ) NOT NULL ,
INDEX ( `url_flux` )
)
ENGINE = MYISAM ;
Voila nous venons de créer notre table, je vous explique rapidement, nous avons le champ id qui sert à incrémenter un chiffre qui nous permettra si besoin est d'identifier un partenaire.
Nous avos crée les champs url_site et url_flux dans lesquels nous stockerons l'url du site et l'url du flux RSS/XML
Tous les autres champs serviront à stocker le nom des champs du titre, description, url de la page de la vidéo et url de la miniature de la vidéo.

Vous pouvez faire renseigner ces informations via un formulaire à remplir via votre page de submit ou bien encore directement depuis votre base de données.

Pour ma part j'ai opté de proposer aux webmasters de saisir leur informations via un formulaire:

http://www.video-2-cul.com/vos-videos.php?type=rss

Pour entrer les informations de votre formulaire dans la table que nous avons crée ,en imaginant que les variables génerées via le formulaire portent le même nom que les champs de la table précédemment crée


Code pour insérer les informations dans notre table

include "votrefichierdeconnexion.php";

$site_url = $_POST['site_url'];
$url_flux = $_POST['url_flux'];
$champ_titre = $_POST['champ_titre'];
$champ_descri = $_POST['champ_descri'];
$champ_url_video = $_POST['champ_url_video'];
$champ_url_thumb = $_POST['champ_url_thumb'];

$yo = mysql_query("insert into partner_info values
('','$site_url','$url_flux','$champ_titre','$champ _descri','$champ_url_video','$champ_url_thumb','0' )");

Le zéro de la fin vous permettra si vous le souhaitez activer en passant a 1 ou désactiver en mettant 0 par exemple lors de l'élaboration de votre code

Voilà, nous savons insérer les données de nos partenaires dans notre base de données.


Etape 2: Récupérer les données vidéos des flux rss/xml de nos partenaires avec PHP 5

Pour vous expliquer simplement on va prendre le cas ou dans notre base on a les valeurs suivantes:
id = 1 ; url du site = http://www.video-2-cul.com ; url du flux = http://www.video-2-cul.com/video-sexe-rss.php; champ titre = title, champ description = description; miniature = thumb; url dela video = link)

voici ce que contient notre flux rss/xml:

<rss version="2.0"></rss>
Contenu du fichier xml/php ou autre extension


<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>Suceuse enragée</title>
<description>Une blonde amateur qui taille une pipe du tonnerre a un mec qui est assis dans sa voiture Elle y met vraiment beaucoup de coeur</description>
<link>http://www.video-2-cul.com/video-in.php?id=17490</link>
<thumb>http://www.video-2-cul.com/thumb/Suceuse-enragee-88.191.51.77-2007-09-21.jpg</thumb>
<enclosure url="http://www.video-2-cul.com/thumb/Suceuse-enragee-88.191.51.77-2007-09-21.jpg" length="0" type="image/jpeg"/>
<date>2007-09-21</date>
</item>
</channel>
</rss>

<rss version="2.0">


</rss>
c'est en fait assez simple de récupérer avec php5, pour cela nous il suffit de nous servir de simplexml_load_file de la manière suivante:

<rss version="2.0"><rss version="2.0">La variable $urlss à pour valeur: </rss></rss>http://www.video-2-cul.com/video-sexe-rss.php (http://www.video-2-cul.com/video-sexe-rss.php;)


Code php5 pour recup les infos



$xml = simplexml_load_file ($urlrss); // on appelle le fichier xml ou php ou autre

$titre = (string) $xml->channel->item->title; // on récuppere le titre
$descri = (string) $xml->channel->item->description; // on récuppere la description
$url = (string) $xml->channel->item->link; // on récupere le lien de la video
$titre = (string) $xml->channel->item->thumb; // on récupere le lien del'image
Dans le cas ou le fichier xml est aux normes , les images se placent dans une balise enclosure
nous procéderons dans ce cas de la manière suivante:


Code php5 pour recup les infos dans la balise enclosure



$image= (string) $xml->channel->item->enclosure['url'];



Vous n'avez plus qu'à insérer le contenu de ce que nous avons dans les variables dans votre bdd .


Dans le cas ou vous avez plus d'un partenaire :cool: vous n'avez qu'à adapter le tout en le plaçant dans une boucle for ou dans un while ...


A vous de faire le rester à vos besoins, je vous ai mis les sources de tout ca dans deux fichiers zip si joint

J'éspère que ce premier tutoriel vous sera utile, n'hésitez pas à le commenter à le faire connaitre, merci de faire un lien vers cet article sur un de vos sites si ce code vous sert, ceci n'est pas obligatoire et gratuit :o .

Harlock
19/09/2008, 19h21
Merci pour ce petit tuto... :confused::D

musikZz
20/09/2008, 07h34
En voila une belle initative, ça servira sans doute a plus d'un :) !