PHP script d'indexation

Fermé
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 - 8 déc. 2008 à 20:52
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 - 13 déc. 2008 à 08:20
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
A voir également:

8 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 déc. 2008 à 21:24
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
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
9 déc. 2008 à 16:33
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
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
9 déc. 2008 à 17:25
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 déc. 2008 à 19:12
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
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
9 déc. 2008 à 20:41
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 déc. 2008 à 23:23
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bg62 Messages postés 23684 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 21 février 2025 2 396
10 déc. 2008 à 12:17
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
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
11 déc. 2008 à 16:36
salut !
en effet avec un fichier *.txt, ça marche super.
Mais comment faire pour un en php ??
merci :D
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 déc. 2008 à 20:58
Je n'en voit pas l'interêt
0
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
12 déc. 2008 à 17:38
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 déc. 2008 à 17:44
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
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
13 déc. 2008 à 08:20
oui j'ai mis tous les titres, descriptions et mots clés à une ligne précise dans toutes mes pages à indexer
0