Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut à tous!!!
Je vien de découvrir Zend_Framework.
Je voudrais insérer à mon site internet une possibilité de recherche des points d'actualité via les Flux RSS.
Mais problème, il m'affiche l'erreur:
Fatal error: Uncaught exception 'Zend_Search_Lucene_Exception' with message 'fopen(../docindex/segments) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory' in C:\Zend\library\Zend\Search\Lucene\Storage\File\Filesystem.php:64 Stack trace: #0 C:\Zend\library\Zend\Search\Lucene\Storage\Directory\Filesystem.php(338): Zend_Search_Lucene_Storage_File_Filesystem->__construct('../docindex/seg...') #1 C:\Zend\library\Zend\Search\Lucene.php(235): Zend_Search_Lucene_Storage_Directory_Filesystem->getFileObject('segments') #2 C:\Program Files\EasyPHP 2.0b1\www\rssmix.php(57): Zend_Search_Lucene->__construct('../docindex') #3 {main} thrown in C:\Zend\library\Zend\Search\Lucene\Storage\File\Filesystem.php on line 64
Je ne comprend pas. Merci de votre aide.
Armand
Voici mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Lecteur de flux RSS</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
// lecture d'un flux RSS 2.0 valide
$handle = fopen("http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml", "r");
if (!$handle)
exit (0);
// buffer contenant les données du flux
$flux = '';
//buffer contenant l'adresse des items
$nom = '';
// si la lecture du flux RSS est ok
if (isset($handle) && !empty($handle))
{
while (!feof($handle))
{
// on charge les données de notre flux RSS par paquet
$flux .= fread($handle, 4096);
}
// test avec la classe SimpleXML
// initialise notre parser RSS avec le flux RSS
$RSS2Parser = simplexml_load_string($flux);
// on se positionne sur la balise
//(racine de notre flux RSS)
$racine = $RSS2Parser->channel;
//Affichage des données du flux
echo "----------------------<br/>";
echo $racine->title."<br/>";
echo $racine->link."<br/>";
echo $racine->description."<br/>";
echo $racine->copyright."<br/>";
echo $racine->image['url']."<br/>";
echo $racine->image['title']."<br/>";
echo $racine->image['link']."<br/>";
echo $racine->pubDate."<br/>";
echo "----------------------<br/><br/>";
//Création du fichier contenant le flux
$handle = fopen("\\Flux.xml","wrb");
// écrit le contenu de la chaîne string dans le fichier Flux.xml .
fputs($handle, "NOM DU FLUX:$racine->title.\nLIEN:$racine->link.\nDESCRIPTION:$racine->description.\nDATE:$racine->pubDate.\nSIGNATURE:$racine->copyright.\n");
fclose($handle);
//creation de l’index
require_once('Zend/Search/Lucene.php');
$indexPath = '../docindex';
$index = new Zend_Search_Lucene($indexPath);
$index = new Zend_Search_Lucene($indexPath, true);
$index = Zend_Search_Lucene::open($indexPath);
// pour chaque item
foreach($racine->item as $element)
{
// on récupère les différents attributs qui nous intéressent
$news_title = $element->title;
$news_uri = $element->link;
$news_desc = $element->description;
$news_date = $element->pubDate;
$docUrl = $element->url;
$docContent = $element->url;
//$news_htmldesc = $element->description;
// ...
// On affiche les attributs
echo "----------------------<br/>";
echo $news_title."<br/>";
echo $news_uri."<br/>";
echo $news_desc."<br/>";
echo $news_date."<br/>";
//echo $news_htmldesc."<br/>";
echo "----------------------<br/><br/>";
$nom += 1;
//Création de fichier par attribut
$handle = fopen("\\$nom.xml","wrb");
//Initialisation du Buffer contenant l'adresse des items
$adr="\\$nom.xml";
//écrit le contenu de la chaîne string dans le fichier pointé par handle .
fputs($handle, "TITRE: $news_title\nLIEN: $news_uri\nDESCRIPTION: $news_desc\nDATE: $news_date\n");
fclose($handle);
$doc = new Zend_Search_Lucene_Document();
//indexation des champs
$doc->addField(Zend_Search_Lucene_Field::Text('title', $news_title));
$doc->addField(Zend_Search_Lucene_Field::Text('description', $news_desc));
// Stocke l'URL du document pour l'identifier dans un résultat de recherche.
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('url', $news_uri));
$index->addDocument($doc);
}
} //Lancement des requêtes et Recherches
$index->commit();
$query = 'Livret';
$index = Zend_Search_Lucene::open($indexPath);
$hits = $index->find($query);
//compteur de résultats
$numHits = sizeof($hits)-1;
//$numHits = count($hits);
//Affichage des résultat
echo "----------------------<br/>";
echo $numHits;
//echo $hits[$numHits]."resultats pour la requete:";
echo $query;
echo "----------------------<br/>";
echo "----------------------<br/>";
foreach ($hits as $hit) {
echo $hit->title."<br/>";
echo $hit->description."<br/>";
echo $hit->url."<br/>";
echo $hit->adresse."<br/>";
}
fclose($handle);
?>
</body>
</html>
Hors ligne