MODIFICATION SCRIPT Parser RSS-à l'aide svp !

Résolu/Fermé
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 4 juil. 2008 à 16:45
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 13 oct. 2008 à 14:10
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 !!!
A voir également:

8 réponses

-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
13 oct. 2008 à 14:10
salut tout le monde, troisieme mois passé sur ce pronleme pouvez vous m'aider s'il vous plait ?
Merci
1
la fonction php utf8_decode n'y fai rien.... un peu d'aide svp.
Merci
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
28 juil. 2008 à 12:55
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
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
6 août 2008 à 14:40
up
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
18 août 2008 à 16:41
up.

svp un peu d'aide
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
19 août 2008 à 10:29
up
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
9 sept. 2008 à 16:11
svp up
sa fait deux mois que je suis dessus !!

La date de publication se trouve entre des balises PubDate, comment l'afficher svp ??
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 12:32
personne pour m'aider?!??

C'est pas possible !
0