par
megamanx » 24 févr. 2017, 21:58
Code : Tout sélectionner
<?php
$compteur = 0;
$d = dir("./"); //Recherche nom de fichier dans ce dossier
if(isset($_POST['submit']) AND !empty($_POST['mot']))
{
$mot = trim($_POST['mot']);
$str = $mot;
$str = strtolower($str);
$mot = $str;
$accent = array(' ' => '-',
'é' => 'e',
'è' => 'e',
'ê' => 'e',
'É' => 'e',
'à' => 'a',
'â' => 'a',
'ï' => 'i');
$mot = strtr($mot, $accent);
while($entry = $d->read())
{
preg_match("#($mot+?)#s", $entry, $new);
$data = trim($new[1]);
if (!empty($data)) {$compteur++; echo '<b>Résultat : <a href="'.$entry.'">'.$data.'</a></b><br><br>';}
if ($compteur > 9) {break;}
}
$d->close();
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="mot">
<input type="submit" name="submit" value="Recherche">
</form>
</div><br><br><br>
C'est bon, ça marche.
Je dois aussi mettre $compteur++; dans la condition if (!empty($data)), sinon il incrémente aussi quand il parcourt les fichiers qui ne correspondent pas.
Avec
break;, il arrête le script immédiatement ? Le code
$d->close(); qui ferme le répertoire ne sera pas lu ?
[code]<?php
$compteur = 0;
$d = dir("./"); //Recherche nom de fichier dans ce dossier
if(isset($_POST['submit']) AND !empty($_POST['mot']))
{
$mot = trim($_POST['mot']);
$str = $mot;
$str = strtolower($str);
$mot = $str;
$accent = array(' ' => '-',
'é' => 'e',
'è' => 'e',
'ê' => 'e',
'É' => 'e',
'à' => 'a',
'â' => 'a',
'ï' => 'i');
$mot = strtr($mot, $accent);
while($entry = $d->read())
{
preg_match("#($mot+?)#s", $entry, $new);
$data = trim($new[1]);
if (!empty($data)) {$compteur++; echo '<b>Résultat : <a href="'.$entry.'">'.$data.'</a></b><br><br>';}
if ($compteur > 9) {break;}
}
$d->close();
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="mot">
<input type="submit" name="submit" value="Recherche">
</form>
</div><br><br><br>[/code]
C'est bon, ça marche.
Je dois aussi mettre $compteur++; dans la condition if (!empty($data)), sinon il incrémente aussi quand il parcourt les fichiers qui ne correspondent pas.
Avec [b]break;[/b], il arrête le script immédiatement ? Le code [b]$d->close();[/b] qui ferme le répertoire ne sera pas lu ?