Slylia
Messages postés58Date d'inscriptionjeudi 27 mai 2010StatutMembreDernière intervention 4 février 2011
-
9 juin 2010 à 09:51
Bonjour à tous,
Dans le cadre de mon stage, je fais un programme de recherche sur le numéro de série. L'utilisateur entre le numéro de série et on cherche celui-ci dans les noms des documents PDF afin d'afficher le document PDF correspondant.
Actuellement je n'arrive pas à chercher une partie d'un nom de fichier dans un répertoire et un sous-répertoire.
Voila mon script actuel et je sais qu'il contient des erreurs :
<body>
<form name="form2" method="POST" action="visu.php" target="_blank">
<h3>Recherche</h3>
<?php
$NumSerie = $_POST['NumSerie'];
define('FICHIER', 'pdf.txt'); //défini le fichier pdf.txt comme une constante car on utilise que ce fichier là pour la recherche
@ $fp = fopen(FICHIER, 'r') or die('Ouverture en lecture de "' . FICHIER . '" impossible !'); //@ permet de cacher le message d'erreur
function ScanDirectory($Directory){
$MyDirectory = opendir($Directory) or die('Erreur');
while($Entry = @readdir($MyDirectory)) {
if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..') {
echo '<ul>'.$Directory;
ScanDirectory($Directory.'/'.$Entry);
echo '</ul>';
$ligne = fgets($Entry);
$posS = strrpos($ligne, "s_"); // trouve la position de s_
$posAn = strrpos($ligne, "_an"); // trouve la position de _an
$longChaine = $posAn - $posS; // différence entre $posAn et $posS
$champ = substr($ligne,$posS, $longChaine); // on récupère le champ entre $posS et $longChaine
if (strstr($champ,$NumSerie)) { // on regarde si le champ contient le numéro de série
echo "<input type=\"radio\" name=\"Choix\" value=\"".$ligne."\">"; //on affiche un bouton radio à chaque résultat
echo $ligne."<br>"; // on affiche les lignes correspondant à la recherche
}
}
else {
}
}
closedir($MyDirectory);
}
ScanDirectory('.');
echo $NumSerie; // Affiche le numéro de série qui a été saisis
echo "<br>";
?>
<td>
<input type="submit" value="Envoi" name="Envoi"/>
</td>
</form>
</body>
Merci d'avance pour votre aide car je ne vois pas du tout comment faire.