PHP script d'indexation

Bonjour,
J'ai fait, sur mon site, un moteur de recherche interne qui recherche parmis des astuces (dans le même dossier).
Et, jusqu'alors, il fallait indexer chaque astuce manuellement.
J'ai commencé à développer un petit script qui récupère le titre, la description, et les mots clés d'une page :
<?php
$monfichier = fopen("fichier.php", "r+");
	//$contenu = fgets($monfichier);
	
	fseek ($monfichier, 174);
	$titre = fgets($monfichier);//on récupère le titre
	//$mots = explode('<', $mot);
	echo '<b>Titre : </b>'.$titre;
	?>
	<br>
	<?php
	fseek ($monfichier, 227);
	$desc = fgets($monfichier); //on récupère la description
	$desc = str_replace('"/>', '', $desc);
	echo '<b>Description :</b>'.$desc;
	?>
	<br><br>
	<?php
	fseek ($monfichier, 426);
	
	$motscles = fgets($monfichier); //on récupère les mots clés
	$motscles = str_replace('"/>', '', $motscles);
	echo '<b>Mots clés : </b>'.$motscles;
		
	fclose($monfichier); //on ferme le fichier

?>

Mais il y a deux problèmes :
1.Le curseur php se place automatiquement sur un nombre de caractère (pour la page).
Mais pour les autres pages, dont le titre, description sont différents....
Ca ne fera pas !
Donc comment puis-je faire pour récupérer une ligne d'un fichier ?

2.Ce script (mal ajusté) ne fait le travail que pour une page.
Comment faire pour qu'il fasse pareil avec tous les fichiers PHP d'un dossier ?

merci de votre réponse
Configuration: Windows XP
Firefox 2.0.0.18

8 réponses

  1. Bonsoir,

    une fonction php très pratique: $array_fichier=file($mon_fichier)

    pas de besoin de fopen fclose elle fait tout et te rend le résultat dans un array $array_fichier

    après il suffit de parcourir cet array

    ex pour avoir la ligne 174

    $contenu_ligne_174=$array_fichier['173']; //les index commencent à 0
    0
    1. Contributeur
      merci bien je vais tester :D
      aurais-tu une idée pour que mon script PHP fasse pareil avec tous les fichiers PHP d'un dossier ?
      0
      1. Contributeur
        malheureusement, ça ne marche pas.
        Quand j'essaye avec ce code :
        <?php
        
        	$monfichier = fopen("chmod.php", "r+");
        	$fichier = file($monfichier) ;
        	$ligne_3 = $fichier[3];
        	echo $ligne_3 ;
        	fclose($monfichier);
        
        ?>
        

        Il me met :

        Warning: file() expects parameter 1 to be string, resource given in C:\wamp\www\Tests\ecriture.php on line 13
        0
        1. Bonsoir,

          as tu lu ce que je t'ai écrit ?

          avec file() pas besoin de faire fopen() fclose()

          donc:

          
          <?php
          
          	$monfichier = "nom_de_ton_fichier.txt";
          	$fichier = file($monfichier) ;
          	$ligne_3 = $fichier[2];//1ier ligne premier index de l'array donc 0, il faut oter 1
          	echo $ligne_3 ;
          	
          
          ?>
          
          0
      2. Contributeur
        ok merci.
        Mais quand je met le code que tu m'as donné :
        <?php
        
        	$monfichier = 'test2.php';
        	$fichier = file($monfichier) ;
        	$ligne_3 = $fichier[2];
        	echo $ligne_3 ;
        	
        ?>
        

        Ma page n'affiche rien !
        Est-ce parceque c'est une page PHP ?
        0
        1. Tant qu'a faire il vaut mieux lire un fichier texte

          parce que dans un fichier php tu doit avoir des instructions qui sont interprétées par la ligne echo ...

          donc peut être pas d'affichage correspondant

          essayes avec un fichier .txt par exemple
          0
      3. Modérateur
        fais une recherche sur le mot " parseur " tu auras certainement un peu plus d'indications
        mais pour le fonctionnement, il faut qu'il soit intégré d'origine au script ou aux pages ...
        b g
        0
        1. Contributeur
          salut !
          en effet avec un fichier *.txt, ça marche super.
          Mais comment faire pour un en php ??
          merci :D
          0
          1. Je n'en voit pas l'interêt
            0
        2. Contributeur
          salut
          ben enfait, c'est que je voudrai prendre dans chaque page dans un certain dosssier, le titre, description, mots clés puis les mettre dans la bdd de mon moteur de recherche.
          Si tu pouvais me dire comment on fait ...
          0
          1. pour un fichier en php ça peut marcher si tu est sur qu'il y ait qq chose dan sla ligne que tu veux lire et du texte seulement

            est ce que tes titres osnt toujours au même endroit (n° de ligne) ? par exemple
            0
        3. Contributeur
          oui j'ai mis tous les titres, descriptions et mots clés à une ligne précise dans toutes mes pages à indexer
          0