Problème de casse recherche PHP

Fermé
marseillais - 28 juin 2011 à 00:18
 Profil bloqué - 28 juin 2011 à 17:21
Bonsoir,
j'ai un moteur de recherche php sur mon site mais voila si je recherche abc et que le fichier est aBc, cela ne fonctionnera pas.

mon code est:
<?php 
$d = dir("./uploads");
if(isset($_POST['submit']) AND !empty($_POST['mot'])){
$mot = trim($_POST['mot']);
while($entry = $d->read()) { preg_match("#($mot+?)#s", $entry, $new);
$data = trim($new[1]);
if (!empty($data)) echo '<a href="download.php?objet='.$entry.'">'.$entry.'</a><br />';
} $d->close();
}
?>



Quelqu'un aurait-il une solution a mon problème?
merci d'avance

A voir également:

5 réponses

uppp
0
Nico Wmb Messages postés 20 Date d'inscription mardi 12 avril 2011 Statut Membre Dernière intervention 28 juin 2011 1
28 juin 2011 à 03:22
et en passant par SQL, cela ne détournerait pas le problème ?

Nico
0
Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 3
28 juin 2011 à 13:32
Je pense que ton probleme vient de ton expression régulière preg_match("#($mot+?)#s", $entry, $new);

#($mot+?)#s : le modificateur s permet de contenir les sauts de ligne, je te conseille plutôt de le remplacer par i -> #($mot+?)#i qui permet de ne pas tenir compte de la casse.

Toine
0
Profil bloqué
28 juin 2011 à 14:42
Et si tu utilisais un truc du style strtolower pour faire ta comparaison ?
0

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

Posez votre question
Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 3
28 juin 2011 à 15:04
Attention avec strtolower si tu es en UTF8 les accents ne seront pas pris en compte !
0
Profil bloqué
28 juin 2011 à 17:21
<?php
function strtolower_utf8($string){
$convert_to = array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u",
"v", "w", "x", "y", "z", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï",
"ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?"
);
$convert_from = array(
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
"V", "W", "X", "Y", "Z", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï",
"Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?"
);

return str_replace($convert_from, $convert_to, $string);
}
?>
0