Ne pas tenir compte majuscules / minuscules php basename

Fermé
andykx - Modifié par Chris 94 le 6/02/2017 à 16:26
 andykx - 7 févr. 2017 à 10:03
Bonjour,

Alors voila je fais une recherche dans mon dossier "doc" et j'aimerais pouvoir afficher tous les fichiers contenant une certaine chaîne de caractères. Je récupère mon mot via la méthode POST et le mot est stocké dans une variable. Voici mon code :

session_start();

$case1 = $_SESSION['name'];

$dir = 'C:\\wamp64\\www\\doc\\';

foreach (glob($dir. '*' .$case1. '*') as $filename) {
    echo "Nom du fichier : <a href='/doc/" . basename($filename) . "' rel="nofollow noopener noreferrer" target="_blank">"  . $filename .  "</a><br>";
}


Que puis-je faire pour qu'il m'affiche les fichiers contenant le mot en minuscule et aussi en majuscule, par exemple un fichier s'appellant bonjour.doc et un autre s'appelant BONJOUR.doc ?

Merci et bonne journée.
A voir également:

1 réponse

Utilisateur anonyme
6 févr. 2017 à 17:14
Déjà pas besoin de prendre le chemin depuis la racine du disque dur, si tu peux y accéder depuis le serveur, de plus je conseille d'utiliser la fonction chdir pour changer de dossier et donc faire que ta fonction glob ne cherche que le nom de fichier et ne prend plus en compte le dossier.

Sinon le seul moyen au quel je pense c'est de faire un glob de tout les fichier dans le dossier et de faire un stripos sur chaque fichier.
0
Merci pour a réponse, c'est vrai que ce que tu me dit permettra d'optimiser au mieux mon code.

Seulement je ne voit pas comment je pourrais utiliser le stripos pour régler mon problème ? Peux-tu me dire ce que tu compte faire exactement ?

Merci.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 7/02/2017 à 09:46
Bonjour,

L'idée, c'est de lister tous les fichiers du répertoire, et de les tester un par un à l'aide d'un foreach.
Par contre, plutôt que d'utiliser stripos, je te conseille d'utiliser fnmatch() qui permet d'utiliser le même genre de pattern que glob : www.php.net/fnmatch
Avec l'option FNM_CASEFOLD qui permet justement de ne pas tenir compte de la casse.

Xavier
0
andykx > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
7 févr. 2017 à 10:03
Merci pour ta réponse Xavier.

Je vais essayer de régler mon problème avec cette solution.

Andy
0