Recherche fichier php

flopad Messages postés 528 Date d'inscription   Statut Membre Dernière intervention   -  
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je mets en place un intranet et je souhaite y intégrer un moteur de recherche. Or étant débutant en html, php,.... je galère.
Je voudrais modifier le code suivant afin de pouvoir scanner tous les sous-dossiers et exclure les fichiers gif et html :
<?
// si le formulaire n'a pas encore ete envoye
if (getenv('REQUEST_METHOD') == "GET")
{
?>
<p><font size="4" color="#800000"><b><u><i><br>
Moteur de recherche des fonctions PHP.<br>
</i></u></b></font></p>

<form action="<? echo getenv('SCRIPT_NAME'); ?>" method="post">
<p>Tapez le nom de la fonction ou une partie du nom sans les ():
<input type="text" name="fonction" size="25" maxlength="100"><br>
<input type="submit" value="Chercher"></p>
</form>
<?
}

// si le formulaire a deja ete envoye
else
{
// recupere le nom de la fonction
$fonction = $HTTP_POST_VARS['fonction'];

// si la valeur de $fonction est vide
// -> on redirectionne sur la meme page pour voir le formulaire
if (empty($fonction)) header ("Location: ".getenv('SCRIPT_NAME'));

// le dossier ou se trouvent les fichier html
// il faut mettre un \ devant un autre \
// pour empecher le caractere d'exclusion
$dossier = "../qualite/*.*\\";

// ouvre le dossier
$biblio = opendir($dossier);

// affichage du formulaire a nouveau
?>
<p><font size="2" color="#800000"><b><u><i>
Moteur de recherche des fonctions PHP.
</i></u></b></font></p>

<form action="<? echo getenv('SCRIPT_NAME'); ?>" method="post">
<p>Tapez le nom de la fonction ou une partie du nom sans les ():
<input type="text" value="<? echo $fonction; ?>" name="fonction"
size="25" maxlength="100"><br>
<input type="submit" value="Chercher"></p>
</form>
<p><hr></p>
<?
// transforme les _ en -
$fonction = str_replace("_","-", $fonction);

// on scanne le dossier fichier par fichier
while ($page = readdir($biblio))
{
// si la valeur de $fonction se trouve dans le nom de la page
if (stristr($page,$fonction))
{
// on affiche le lien
echo ("<a href='".$dossier.$page."'>".$page."</a><br>");
}
}
}
?>


Merci d'avance pour votre aide.
A voir également:

1 réponse

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Apparemment tu as tout ce qu'il faut sauf le tri des fichiers par extensions.
Pour tester si un fichier se termine par .gif, tu peux utiliser les expressions régulières avec ereg()

L'expression régulière pour savoir si une chaine se termine par gif ça donne:
"\.gif$"

Voir: http://www.commentcamarche.net/php/phpreg.php3

Donc pour tester si un fichier se termine par ".gif", ça donne:
if (ereg("\.gif$",$nom_du_fichier)){
         //Le fichier se termine par .gif
}
0