Rechercher : dans
Par :

MODIFICATION SCRIPT Parser RSS-à l'aide svp !

Dernière réponse le 13 oct 2008 à 14:10:42 -CCM-, le 4 jui 2008 à 16:45:51 
 Signaler ce message aux modérateurs

Bonjour à tous,

J'ai récupérer un script GPL pour recuperer les infos des flux RSS.
Le script est composé de deux fichiers :

rss.php

<?php
error_reporting(E_ALL ^ E_NOTICE);

function render_news($feed_url, $showdetail, $headlinestyle, $detailstyle) {
	global $show_detail, $headline_style, $detail_style, $max, $count, $insideitem, $insideimage;
	$insideitem=false;
	$insideimage=false;
	$count = 0;
	$show_detail = $showdetail;
	$headline_style = $headlinestyle;
	$detail_style = $detailstyle;

	$xml_parser = xml_parser_create();
	xml_set_element_handler($xml_parser, "startElement", "endElement");
	xml_set_character_data_handler($xml_parser, "characterData");
	$fp = @fopen($feed_url,"r");
//		   or die("Error reading RSS data.");
	if ($fp) {
		while ($data = fread($fp, 4096))
	   	xml_parse($xml_parser, $data, feof($fp))
			   or die(sprintf("XML error: %s at line %d",  
				   xml_error_string(xml_get_error_code($xml_parser)),  
				   xml_get_current_line_number($xml_parser)));
		fclose($fp);
		} else {
		echo '<span class="'. $detail_style .'">Syndicated content not available</span>';
		}
		
	
	// Free up memory used by the XML parser
	xml_parser_free($xml_parser);
}


function startElement($parser, $name, $attrs) {
	global $insideitem, $tag, $title, $description, $link, $image, $insideimage;
	if ($insideitem || $insideimage) {
		$tag = $name;
	} 
	if ($name == "ITEM" ) {
		$insideitem = true;
	} 
	if ($name == "IMAGE") {
		$insideimage = true;
		
	}
}

function endElement($parser, $name) {
	global $insideitem, $tag, $title, $description, $link, $image, $insideimage, $show_detail, $headline_style, $detail_style, $count, $max;

	if ($name == "URL") 
	{
		$insideimage=false;
		$image="";
	} else if ($name == "ITEM" && $count < $max) {
		$count++;
		printf('<a href="%s" class="'. $headline_style .'" target="_blank"><b>%s</b></a><br>',trim($link),trim($title));
		if ($show_detail) 
			printf('<span class="'. $detail_style .'">%s</span><br>',trim($description));
		else {
			echo "<br>";
			printf('<span class="'. $detail_style .'">%s</span><br>',trim($description));
			echo "<br>";
		}
		$title = "";
		$description = "";
		$link = "";
		$insideitem = false;
	} else if ($count >= $max) {
		$title = "";
		$description = "";
		$link = "";
		$insideitem = false;
	}
}

function characterData($parser, $data) {
	global $insideitem, $tag, $title, $description, $link, $image, $insideimage;
	if ($insideimage) {
		switch ($tag) {
			case "URL":
			$image .= $data;
			break;
		}
	} 
	if ($insideitem ) {
	switch ($tag) {
		case "TITLE":
		$title .= $data;
		break;
		case "DESCRIPTION":
		$description .= $data;
		break;
		case "LINK":
		if (!is_string($link)) $link="";
		$link .= $data;
		break;
	}
	}
}
?>


et un code pour l'executer

<?php
include("rss.php");

//$headline_style = 'news';
$headline_style = '';
$description_style = 'Arial,';
$feed_url = 'http://www.mon.url-vers/lefichier/rss.xml';
$show_detail = false;
$insideitem = false;
$tag = "";
$title = "";
$description = "";
$link = "";
$image = "";
$insideimage = false;
$max = 3;
$count = 0;

render_news($feed_url, $showdetail, $headlinestyle, $detailstyle) ;
?>


J'ai plusieurs soucis....

1 Le premier c'est que pour pouvoir afficher la description de chaque article je suis obliger de forcer une boucle if : (normalement dans le else je n'ai rien, et je ne sait pourquoi a chaque fois je tombe dans l'else)

		[B]if/B ($show_detail) 
			[B]printf('<span class="'. $detail_style .'">%s</span><br>',trim($description));/B
		[B]else/B {
			echo "<br>";
			[B]printf('<span class="'. $detail_style .'">%s</span><br>',trim($description));/B
			echo "<br>";


Comment eviter ce bouclage? Pourquoi la description ne s'affiche pas?

2 Mon second problème est due aux accents :

[QUOTE] données - Sécurité - sûreté /QUOTE impossible de comprendre le texte ! ma page php contenant le code d'execution est pourtant en [B]charset=iso-8859-1/B

Comment changer le type iso du resultat obtenu ??



3 Mon troisième problème c'est qu'en affichant les lien rss et la description, en bas du flux "http://rss.feedsportal.com/c/681/f/8820/index.rss" apparaissent les images "partager cet article" et "bookmark" .

Comment supprimer cette affichage d'image?

Je voudrais par la suite en arriver à un resultat comme
http://www.secuser.com/actu/index.htm.
Soft, sans erreur d'accent -utf-8/iso-8859-1, et avec une belle mise en forme... :roll:

Est-ce possible en PHP ??

En vous remerciant d'avance pour votre aide et vos éclaircissement !!!
Configuration: Windows XP
Firefox 2.0.0.15

Meilleures réponses pour « MODIFICATION SCRIPT Parser RSS à l'aide svp ! » dans :
RSS - Syndication de contenu Voir Introduction au RSS Le standard RSS représente un moyen simple d'être tenu informé des nouveaux contenus d'un site web, sans avoir à le consulter. Le format « RSS » (traduisez « Really Simple Syndication ») permet ainsi de décrire de façon...
Javascript - Date de dernière modification de la page Voir Il est possible, en langage Javascript, d'afficher la date de dernière modification de la page Web grâce à la propriété lastModified de l'objet document :
[IE] Erreur de script / Effectuer un débogage VoirDe temps en temps, lorsque vous naviguez sur le Net et que vous chargez une page Web, un message d'erreur de script survient : Une erreur est survenue. Une erreur est survenue sur le script de cette page. Souhaitez-vous effectuer un...
Agrégateurs RSS (lecteurs de fils RSS) VoirAgrégateurs RSS (lecteurs de fils RSS) Présentation générale des flux RSS Principaux agrégateurs RSS Agrégateurs RSS online Présentation générale des flux RSS Le standard RSS représente un moyen d'être tenu informé des nouveaux contenus...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Télécharger ARA Editeur RSS VoirLe flux RSS est une liste de mise à jour publiée ou diffusé sur une blog ou un site internet. Il affiche un résumé d’information pour un article sans avoir consulter le site en question. ARA est un programme permettant de composer et...
SQL - Modification de table VoirModification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...
Les standards RSS VoirLe standard RSS Un flux RSS est un simple fichier texte contenant des informations structurées au format XML, permettant de décrire de façon fine le contenu du canal et de chacun des items qui le constituent. Il existe plusieurs versions du...

1

-CCM-, le 7 jui 2008 à 09:48:23

La fonction php utf8_decode n'y fai rien.... un peu d'aide svp.
Merci

Répondre à -CCM-

2

-CCM-, le 28 jui 2008 à 12:55:21

Personne pour m'aider svp?

--> Comment eviter ce bouclage? Pourquoi la description ne s'affiche pas?
La date de publication se trouve entre des balises PubDate, comment l'afficher ??

Merci a vous

Répondre à -CCM-

3

-CCM-, le 6 aoû 2008 à 14:40:19

Up

Répondre à -CCM-

4

-CCM-, le 18 aoû 2008 à 16:41:08

Up.

svp un peu d'aide

Répondre à -CCM-

5

-CCM-, le 19 aoû 2008 à 10:29:22

Up

Répondre à -CCM-

6

-CCM-, le 9 sep 2008 à 16:11:33

Svp up
sa fait deux mois que je suis dessus !!

La date de publication se trouve entre des balises PubDate, comment l'afficher svp ??

Répondre à -CCM-

7

-CCM-, le 25 sep 2008 à 12:32:55

Personne pour m'aider?!??

C'est pas possible !

Répondre à -CCM-

8

 -CCM-, le 13 oct 2008 à 14:10:42
  • +1

Salut tout le monde, troisieme mois passé sur ce pronleme pouvez vous m'aider s'il vous plait ?
Merci

Répondre à -CCM-