Recherche fichier php

Fermé
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 17 oct. 2005 à 16:16
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 18 oct. 2005 à 02:25
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
18 oct. 2005 à 02:25
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