Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-01-2008 12:40:47

Armand6
Nouveau membre
Date d'inscription: 17-01-2008
Messages: 1

Problème de recherche

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages