phpInfo.netLes ArchivesLes éléPHPants

  
  Accueil
  Trucs & Astuces
  Scripts
  Regex
  Annuaire
  Articles

.
      
 Articles   Afficher les News de phpInfo.net sur votre site  Par J-Pierre DEZELUS   Août 2000  

 »  Introduction
 »  Méthode n°1 - Code JavaScript
 »  Méthode n°2 - Parser un fichier texte
 »  Exemple de script PHP pour parser les news phpInfo.net
 »  Méthode n°3 - Parser un fichier RDF/RSS (XML)


Introduction

Vous avez maintenant la possibilité d'afficher les news de phpInfo.net sur votre propre site Web. Pour cela, je vous propose 2 méthodes, qui s'inspirent très largement des informations données par LinuxFr dans son espace dédié aux Webmasters.
  • En insérant un code JavaScript dans vos pages
  • En 'parsant' un fichier texte fourni par phpInfo.net


Méthode n°1 - Code JavaScript

La 1ère méthode est la plus simple à mettre en oeuvre. Elle consiste simplement à insérer la balise JavaScript suivante dans vos pages html/php.

<SCRIPT SRC="http://www.phpinfo.net/news-phpinfo/news-phpinfo.php3"></SCRIPT>

Ce code affiche dynamiquement les 10 dernières news en provenance de phpInfo.net. Voici ce que vous obtiendrez :


Voici sur une page HTML vierge ce que donne l'insertion du script : Exemple

Méthode n°2 - Parser un fichier texte

La deuxième méthode demande un peu de programmation puisqu'elle consiste à 'parser' un fichier texte disponible sur phpInfo.net. Ce fichier texte est situé à l'adresse suivante http://www.phpinfo.net/news-phpinfo/news-phpinfo.txt et contient les news sous la forme suivante :

%%
11-09-2002
La fin de MySQL-Front ?
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=612&id_comm=0
boite-outils.gif
%%
11-09-2002
Les Infos du Web s'étoffent
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=611&id_comm=0
journaux.gif
%%
11-09-2002
En attendant les défis phpInfo
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=610&id_comm=0
trophee.gif
%%
08-09-2002
L'éléphpant à la conquête de l'Amérique !
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=609&id_comm=0
elephpant.gif
%%
06-09-2002
Sortie de PHP 4.2.3
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=608&id_comm=0
logo-php4.gif
%%
06-09-2002
PHPCon 2002
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=607&id_comm=0
phpcon.gif
%%
06-09-2002
Boomtchak disparaît, ... ZoneSuivante renaît
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=606&id_comm=0
globe.gif
%%
29-08-2002
Synthèse de l'actualité PHP du mois d'août
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=605&id_comm=0
journaux.gif
%%
26-07-2002
PHP Journal
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=604&id_comm=0
journaux.gif
%%
22-07-2002
Vulnérabilité dans PHP 4.2.0 et 4.2.1
http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=603&id_comm=0
logo-php4.gif

L'avantage de cette méthode sur la précédente est qu'elle vous permet de personnaliser totalement la façon dont vous afficherez les news (en choisissant vous-même le code HTML à faire générer par PHP).

La section suivante vous donne un exemple de script permettant de parser ce fichier texte.
Ce que donnera ce script s'il n'est pas modifié : Exemple

Exemple de script PHP pour parser les news phpInfo.net

Ce script a initialement été écrit par Kalle Kiviaho, puis modifié par Jean-Sébastien GOETSCHY pour LinuxFr.
Je l'ai à mon tour repris pour l'adapter à phpInfo.net.

Le fichier news-phpinfo/parse-phpinfo.php3 :

<?

// -------------------------------------------------------------
// Fichier:    parse-phpinfo.php3
// Version:    1.0
// Auteur:     Jean-Pierre DEZELUS <jpdezelus@phpinfo.net>
// Dern Modif: 04 août 2000
// Site:       http://www.phpinfo.net/
// -------------------------------------------------------------
//
// Pour insérer les news de phpinfo.net placer la ligne
// suivante dans vos scripts php :
//   
//      include("parse-phpinfo.php3");
//
// -------------------------------------------------------------
// Note:       basé sur linuxfr.php3 0.0.3
// Auteur:       Jean-Sébastien GOETSCHY - goetschy@agat.net
// Dern Modif: 07 février 2000
// Site:       http:/www.agat.net/
// -------------------------------------------------------------
// Note:       basé sur newsbackend interfaces 2.0.4
// Author:     Kalle Kiviaho - kivi@chl.chalmers.se
// Lastmod:    1999-09-09
// Homepage:   http:/swamp.chl.chalmers.se/backends/
// -------------------------------------------------------------


// -------------------------------------------------------------
// Variables de Configuration
// -------------------------------------------------------------
  
  
$source        = "news-phpinfo.txt";

  
$prefixe_lien  = "o";
  
$suffixe_lien  = "<BR>\n";
  
$fichier_cache = "news-phpinfo.cache.php3";
  
$duree_cache   = 3600; // en secondes
  
$target        = "_blank";

// -------------------------------------------------------------


$time = split(" ", microtime());
srand((double)microtime()*1000000);
$duree_cache_rnd = 300 - rand(0, 600);

$ok = true;

if ((!(
file_exists($fichier_cache))) ||
    ((
filectime($fichier_cache)+$duree_cache-$time[1])+$duree_cache_rnd < 0) ||
    (!(
filesize($fichier_cache)))) {

  
$fSource = @fopen($source, 'r');
    
  if (!
$fSource) {
    
    echo
"Impossible d'ouvrir la source (".$source.")<BR>\n";
    
$ok = false;
  
  } else {

    
$fCache = fopen($fichier_cache, 'w');

    if (!
$fCache) {
      echo
"Impossible de créer le cache (".$fichier_cache.")<BR>\n";
      
$ok = false;

    } else {

        while(!
feof($fSource)) {
            
        
$buffer = chop(fgets($fSource, 256));

        if (
$buffer == "%%") {

          
$date  = chop(fgets($fSource, 256));
          
$titre = chop(fgets($fSource, 256));
          
$lien  = chop(fgets($fSource, 256));
          
$image = chop(fgets($fSource, 256));

          if (
$titre != "") {
            
$item  = $prefixe_lien." ".$date;
            
$item .= " <A HREF='".$lien."' TARGET='".$target."'>".$titre."</A>";
            
$item .= $suffixe_lien;
            
fputs($fCache, $item);
          }

        }
      }
      
      
fclose($fCache);

    }
      
    
fclose($fSource);
  }
  
}

if (
$ok && file_exists($fichier_cache)) include($fichier_cache);

?>

 » Télécharger le fichier parse-phpinfo.php3 : [zip] [tar.gz]

Méthode n°3 - Parser un fichier RDF/RSS (XML)

Cette nouvelle méthode qui demande aussi un peu de programmation s'appuie sur le langage XML et le format RDF/RSS (Rich Site Summary), un format imaginé par Netscape pour le concept de channel sur My Netscape Netcenter (MNN) et qui tend à se généraliser. Ce format est particulièrement adapté à la publication de nouvelles.

Le fichier à 'parser' est disponible à l'adresse suivante http://www.phpinfo.net/news-phpinfo/news-phpinfo.rss et contient les news sous la forme suivante :

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
"http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

  <channel>

  <title>phpInfo.net</title>
  <link>http://www.phpinfo.net/</link>
  <description>Le site d'information PHP / MySQL</description>
  <language>fr</language>

  <image>
    <title>phpInfo.net</title>
    <url>http://www.phpinfo.net/images/phpinfo-button.gif</url>
    <link>http://www.phpinfo.net/</link>
    <width>88</width>
    <height>31</height>
  </image>

  <item>
    <title>La fin de MySQL-Front ?</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=612</link>
  </item>

  <item>
    <title>Les Infos du Web s'étoffent</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=611</link>
  </item>

  <item>
    <title>En attendant les défis phpInfo</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=610</link>
  </item>

  <item>
    <title>L'éléphpant à la conquête de l'Amérique !</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=609</link>
  </item>

  <item>
    <title>Sortie de PHP 4.2.3</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=608</link>
  </item>

  <item>
    <title>PHPCon 2002</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=607</link>
  </item>

  <item>
    <title>Boomtchak disparaît, ... ZoneSuivante renaît</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=606</link>
  </item>

  <item>
    <title>Synthèse de l'actualité PHP du mois d'août</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=605</link>
  </item>

  <item>
    <title>PHP Journal</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=604</link>
  </item>

  <item>
    <title>Vulnérabilité dans PHP 4.2.0 et 4.2.1</title>
    <link>http://www.phpinfo.net/?p=commentaires&rub=news_phpinfo&id=603</link>
  </item>

  <textinput>
    <title>Rechercher</title>
    <description>Rechercher sur phpInfo.net</description>
    <name>q</name>
    <link>http://www.phpinfo.net/?p=chercher</link>
  </textinput>

  </channel>

</rss>

Pour parser ce type de fichier vous pouvez utiliser la classe smartRDF écrite par Jean-Luc Nail et proposée sur son site PHPClassRoom.

Autres liens ...

 » RDF Site Summary (RSS) 1.0
 » RSS Info
Synseo