Aller au contenu

[PARSER XML] Help me please


.BöD.

Messages recommandés

Recyclage de topic
Voir plus bas...

Bonjour, c'est encore moi...

Sur un de mes sites je regroupe les news de différents sites hardware grace aux codes javascript qu'ils fournissent.

Cette page se trouve ici : http://www.bod.power-heberg.com/news/

Seulement dés qu'un site ne répond pas (qu'il est hors ligne) le chargement de la page s'arréte et les news des sites suivants ne sont alors pas affichées.

Vous me suivez ?

Y'aurait-il un script qui me permette l'abandon de la requéte a ce site et de passer alors au site suivant aprés X secondes d'attente ?

Lien vers le commentaire
Partager sur d’autres sites

Ben j'ai essayé, page blanche a chaque fois... :transpi:

En fait je veut avoir toutes les news sur une seule et méme page, et ca Xoops ne le permet pas (enfin avec le module manchette)...

Et pour récupérer les flux RSS j'ai pas trouvé de solutions...

Enfin si j'ai trouvé ce script : http://www.bod.power-heberg.com/rss.txt

Je ne l'ai pas encore essayé, mais il ma l'air bien compliqué... :roule:

Puis je me demande si ca ne fera pas le méme, cad que si le serveur du site est down, pas de flux et donc l'interprétation php va certainement bloquer nan ? :mdr:

Bon, je vais essayer le script que j'ai trouver pour voir si ca marche...

Lien vers le commentaire
Partager sur d’autres sites

Oui c'est ca le probléme...

Sur un autre forum une personne m'a parlé du XmlHttpRequest, je voit ce que c'est, c'est ce qui est utilisé pour l'interface Gmail mais j'y connais rien...

Bon, le script que j'ai trouvé donne ca : http://www.bod.power-heberg.com/rss.php, donc je l'abandonne...

Bon, d'autres idées ? :oops:

oui, il te suffit de supprimer les éléments en trop dans le script, et là ca devrait aller mieux ;)

Lien vers le commentaire
Partager sur d’autres sites

Si seulement tous les sites avaient ceci : http://www.infos-du-net.com/php-articles.php?n=15

Ca me permettrais de faire un include directement dans le php, seulement il n'y a que 2 ou 3 sites qui le font...

Le reste c'est comme pc inpact c'est fait pour du javascript, et donc si je fait un include ca va donner ca :

document.write('06/06 : Récepteur TNT externe PCTV MEDIACENTER 200e

'); document.write('06/06 : Du Soleil pour une meilleure Pomme ?

'); document.write('06/06 : Sacem : Toutes nos lignes sont occupées...

....

A mois que qu'un gentil inpactien me montrerais un code pour le nettoyer des document.write(' et '); :chant:

Lien vers le commentaire
Partager sur d’autres sites

ben sinon à la rigueur tu télécharges un parseur de rss open source, et tu le places sur ton site

:eeek2:

Ca fonctionne ! :yes:

<?php
/* ------------------------------------------------------
Parser de rss - by comscripts
------------------------------------------------------- */

$site = "http://www.pcinpact.com/include/news.xml";
$fp = @fopen($site,"r");
while(!feof($fp)) $raw .= @fgets($fp, 4096);
fclose($fp);

if( eregi("<item>(.*)</item>", $raw, $rawitems ) ) {
$items = explode("<item>", $rawitems[0]);

for( $i = 0; $i < count($items)-1; $i++ ) {
 eregi("<title>(.*)</title>",$items[$i+1], $title );
 eregi("<url>(.*)</url>",$items[$i+1], $url );
 eregi("<categorie>(.*)</categorie>",$items[$i+1], $cat);
 echo "<li><a href='".$url[1]."'>".$title[1]."</a> - ".$cat[1];
}
}

?>

Bon faut que je le bidouille un peu pour qu'il affiche les dates devant la news mais ca fonctionne ! :rhooo:

:chant:

Lien vers le commentaire
Partager sur d’autres sites

et ca ?

<?php
/* ------------------------------------------------------
Parser de rss - by comscripts
------------------------------------------------------- */

$site = "http://www.pcinpact.com/include/news.xml";
$fp = @fopen($site,"r");
while(!feof($fp)) $raw .= @fgets($fp, 4096);
fclose($fp);

if( eregi("<item>(.*)</item>", $raw, $rawitems ) ) {
$items = explode("<item>", $rawitems[0]);

for( $i = 0; $i < count($items)-1; $i++ ) {
eregi("<title>(.*)</title>",$items[$i+1], $title );
eregi("<link>(.*)</link>",$items[$i+1], $url );
eregi("<categorie>(.*)</categorie>",$items[$i+1], $cat);
echo "<li><a href='".$url[1]."'>".$title[1]."</a> - ".$cat[1];
}
}

Lien vers le commentaire
Partager sur d’autres sites

Version béta de ma page récupéreuse de rss : http://bod148.free.fr/news/ :8

Un joli assemblage de 9 fichiers php pour votre plaisir ! :-D

Vous voulez ajouter d'autres site ? demandez le moi ! ;)

Par contre le flux de Hardware.fr passe pas ! :fete:

Et celui de blue-hardware passe mal ! :craint:

Et Nokytech n'a pas de flux xml ! :sucre:

Et moi je vais dormir ! :byebye:

Lien vers le commentaire
Partager sur d’autres sites

Heu, toujours moi ! :francais:

J'ai un probléme pas trés important mais super chiant quand méme...

Donc je m'explique :

Dans le script on peut choisir le nombre de news a afficher en retranchant un certain nombre de news au nombre total, vous me suivez ? :sucre:

Seulement sur certains site (comme ppc) le nombre de news dans le XML varie sans cesse et donc comme il retranche toujours le méme nombre, ben défois ca affiche rien, défois ca en affiche un ou deux.. :roule:

Voila le script :

<?php

$site = "http://www.presence-pc.com/rss.xml";
$fp = @fopen($site,"r");
while(!feof($fp)) $raw .= @fgets($fp, 4096);
fclose($fp);

if( eregi("<item>(.*)</item>", $raw, $rawitems ) ) {
$items = explode("<item>", $rawitems[0]);

for( $i = 0; $i < count($items)-55; $i++ ) {
eregi("<title>(.*)</title>",$items[$i+1], $title );
eregi("<link>(.*)</link>",$items[$i+1], $url );
echo "<li><a href='".$url[1]."'>".$title[1]."</a>";
}
}

?>

Donc si qqn s'y connait pourrait-il m'expliquer comment pourrais-je faire pour que le script compte les news a afficher plutot que de le retrancher au nombre total de news ?

Ca se passe dans cette ligne, mais comment la modifier ? :

for( $i = 0; $i < count($items)-55; $i++ )

Merci d'avance aux courageux... :francais:

Lien vers le commentaire
Partager sur d’autres sites

J'ai tenté un truc, et ca fonctionne !!! :

<?php

$nombre_limite = 20; // Nombre maximum d'éléments à afficher
$site = "http://www.pcinpact.com/include/news.xml";

$fp = @fopen($site,"r");
while(!feof($fp)) $raw .= @fgets($fp, 4096);
fclose($fp);

if( eregi("<item>(.*)</item>", $raw, $rawitems ) ) {
$items = explode("<item>", $rawitems[0]);
$nb = count($items); 
$maximum = (($nb-1) < $nombre_limite) ? ($nb-1) : $nombre_limite; 

for ($i=0; $i<$maximum; $i++) {
eregi("<title>(.*)</title>",$items[$i+1], $title );
eregi("<link>(.*)</link>",$items[$i+1], $url );
echo "<li><a href='".$url[1]."'>".$title[1]."</a>";
}
}

?>

:francais::francais:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...