Flux RSS 01/01/70
Comment faire pour que les dates de mon flux RSS ne soient pas comme ca:
01/01/70
Mais plutot comme ca:
21/01/10
Dans mon code j'ai ca mais comme je sais pas programmer je sais pas comment corriger:
$date = date("d/m/y",strtotime($item["pubdate"]));
Quelqu'un pourrait-il m'aider?
Merci
Configuration: Windows Vista Internet Explorer 7.0
31 réponses
La discussion porte sur le formatage des dates dans un flux RSS en PHP, qui affiche 01/01/70 au lieu de 21/01/10. Plusieurs réponses proposent d'utiliser SimpleXML ou des fonctions PHP comme date et strtotime pour interpréter pubdate et afficher le format souhaité. D'autres échanges évoquent des méthodes d'extraction via SimpleXMLElement, ainsi que des conseils pour limiter l'affichage et optimiser le traitement des flux. En cas de besoin, certains répondent en fournissant des exemples concrets de code et des liens vers des flux ou des scripts pour manipuler les dates et le contenu.
-
Que contient $item['pubdate'] ?
-
Je comprends pas tres bien ta question... voici le code que j'utilise en entier.. peut-etre que ca pourra t'aider.
<?php
// inclusion de la classe magpierss
require_once("magpierss/rss_fetch.inc");
// Fonction d'extraction des données du flux
// 2 paramètres, l'url du flux et le nombre d'informations à afficher (5 par défaut)
function FeedParser($url_feed, $nb_items_affiches=5) {
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
// si la lecture s'est bien passée, on lit les élements
if (is_array($rss->items)) {
// On ne garde que les $nb_items_affiches premières informations
$items = array_slice($rss->items, 0, $nb_items_affiches);
// Récupération des informations sur le site et sur la vignette
$site_titre = $rss->channel["title"];
$site_lien = $rss->channel["link"];
$site_description = $rss->channel["description"];
$logo_titre = $rss->image["title"];
$logo_description = $rss->image["description"];
$logo_url = $rss->image["url"];
$logo_lien = $rss->image["link"];
// Création de la chaine de résultat
// Boucle sur les informations et récupérations du contenu des balises
foreach($items as $item) {
$titre = $item["title"];
$lien = $item["link"];
$description = $item["description"];
if (isset($item["enclosure"])) { $photo = $item["enclosure"]; } else { $photo =""; }
// Convertion de la date au format Timestamp (secondes depuis le 01/01/70)
// Formatage de la date (jj/mm/aa). Utilisez le formatage de votre choix.
$date = date("d/m/y",strtotime($item["pubdate"]));
// Il n'y a pas systématiquement une photo, on test donc sa présence
if($photo!="")
$html .= "<img src=\"".$photo."\" alt=\"".$titre."\" style=\"float:left;margin-right:5px\">\n";
// Affichage du titre
$html .= "<a href=\"".$lien."\" title=\"".$titre."\" target=\"_blank\">".$titre."</a><br>\n";
// Affichage de la date et de la description
$html .= "<span class=\"tiny\">".$date."</span><br clear=\"left\"><br>\n";
} // Boucle sur les infos
// retourne le code HTML à inclure dans la page
return $html;
} // Condition de récupération des données
} // Fin de la fonction
?> -
Aidez moi SVP
-
personne?
-
Tu n'as pas répondu à ma question ...
Et pourquoi utilises-tu une librairie ? SimpleXMLElement te permet de le faire aussi facilement. -
Mais je ne comprends pas ta question.. j'ai trouver ce code sur internet.. j'y connais rien en programmation.
SimpleXML Element ca me dit rien non plus... pourrais tu developper?
Merci. -
Passe le flux RSS et le code HTML que tu aimerais obtenir (en replaçant le titre par {titre} par exemple).
-
Desole Avion mais je ne comprends vraiment pas...
Pourrais tu me dire exactement ce que je dois faire car je debute et la programmation c'est vraiment pas mon truc..
Merci -
Tu connais au moins le XHTML/CSS ?
En tout cas passe l'url du flux RSS que tu veux lire. -
Voici l'url du flux que je veux lire:
<?php include('http://www.broker-forex.fr/forum/extern.php?action=new&show=10&fid=1'); ?>
Je connais un peu CSS mais pas trop XHTLM (pas du tout pour etre precis!) -
Ce n'est pas un flux RSS !
Il suffit de faire un file_get_contents ou include en PHP, ce que tu as déjà fais, pour avoir le HTML sur ta page Web. -
Le probleme est que lorsque j'indique ca:
<?php include('http://www.broker-forex.fr/forum/extern.php?action=new&show=10&fid=1'); ?>
Rien ne s'affiche lorsque je lance la page... j'ai l'impression qu'il y a un probleme au niveau de l'hebergeur.. je suis chez Hebergeur Discount.. -
Avion est-ce que tu sais pourquoi ca marche pas? Y-a un reglage a faire du cote de Hebergeur discount?
-
Ta page a bien l'extension .php ?
-
oui la page a une extension .php
J'ai fait une page test.php et dedans j'ai le code suivant:
<?php include('http://www.broker-forex.fr/forum/extern.php?action=new&show=10&fid=1'); ?>
et quand je vais a:
www.monsite.com/test.php
rien ne s'affiche.. meme pas de message d'erreur, juste une page blanche. -
Essaye ça :
<?php echo file_get_contents('http://www.broker-forex.fr/forum/extern.php?action=new&show=10&fid=1'); ?> -
Cette fois-ci ca marche!
par contre j'ai juste une liste de liens.. et ce que j'aimerais c'est juste:
date - sujet (avec lien vers le sujet du forum) - auteur
par exemple:
26-01-2010: comment ca marche?? par: Avionf16
Est-ce possible? -
À partir de l'url donnée, tu ne sais rien récupérer d'autre.
Il faut le vrai flux RSS si tu veux les autres infos. -
Voici l'adresse du flux RSS: http://www.broker-forex/forums/extern.php?action=active&type=RSS
-
<?php $source = file_get_contents('http://www.broker-forex.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS'); $xml = new SimpleXMLElement($source); foreach($xml->channel->item as $new) { preg_match_all('#Auteur: (.+)<br />#isU',$new->description,$auteur); $auteur = $auteur[1][0]; preg_match_all('#Écrit le: (.+), ([0-9]+) ([a-z]+) ([0-9]+) ([0-9]+:[0-9]+:[0-9]+)(.+)<br />#isU',$new->description,$date); $jour = $date[2][0]; $mois = $date[3][0]; $annee = $date[4][0]; $heure = $date[5][0]; echo $jour.' '.$mois.' '.$annee.' à '.$heure.' : '.$new->title.' par '.$auteur.'<br />'; } ?>
- 1
- 2