Appeller un fichier sans connaître l'extension et le préfixe

Résolu
andykx -  
 andykx -
Bonjour,

Alors voila j'ai un soucis je cherche à appeller un fichier en connaissant qu'un mot contenu dans le nom du fichier.

Voici mon code :

$chemin = " '*' .$case2. '*' ";

Cependant il ne comprend pas les astérisques. Comment puis-je faire ?

Merci.
A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Une solution possible est d'utiliser la fonction glob() pour rechercher les fichiers et dossiers à partir d'un masque.
Par exemple :
$pattern = '*index*';

$files = glob($pattern);

foreach ($files as $file) {
    if (is_file($file)) {
        echo $file;
    }
}


https://www.php.net/manual/fr/function.glob.php

Bonne journée,
0
andykx
 
Meci pour ta réponse, le problème c'est que j'utilise déja cette fonction, voici mon code entier de mon fichie php :

<?php

session_start();

$case2 = $_SESSION['name2'];

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

$chemin = " '*' .$case2. '*' "; 

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

?>


Je ne voit donc acune solution à mon problème et je suis bloqué là dessus depuis 1 jour.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Ton code semble correct, si celui-ci ne retourne aucun résultat c'est qu'aucun fichier dans le dossier doc ne correspond au masque utilisé dans la fonction glob.

Quel est la valeur de la variable $case2 ? As tu des fichiers qui correspondent au masque dans le dossier doc ?
0
andykx > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 
Justement si, des fichiers contenant le mot de la variable sont présents.

Par exemple, je récupère le mot coupure dans ma variable $case2 et lorsque je met ma souris sur le lien il m'indique qu'il me renvoie vers :

http://localhost/doc/*coupure*__Il prend donc bien en compte la valeur de ma variable mais il ne comprend pas les astérisques, je ne sais pas pourquoi..

De plus admettons que j'enlève le $chemin il m'ouvre bien le dossier /doc et je vois bien tous les fichiers présens à l'intérieur.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
La chaine *coupure* est le masque, ton lien doit pointer sur le fichier et non sur le masque :
foreach (glob($dir. '*' .$case2. '*') as $filename) {
     echo "Nom du fichier : <a href='/doc/" . basename($filename) . "' rel="nofollow noopener noreferrer" target="_blank">"  . $filename .  "</a><br>";
}
0
andykx > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 
Effectivement tu a raison je n'avais pas penser à ça je pense qu'on est sur la bonne voie.

Cependant j'ai pas mal d'erreurs à cause des << " >> et des << ' >> .

Mon interpréteur me renvoie ça :

Parse error: syntax error, unexpected 'nofollow' (T_STRING), expecting ',' or ';' in C:\wamp64\www\accueil_accenture\doc2.php on line 12
0
andykx
 
Problème résolu.

Je te remercie pour ton aide.

Bonne fin de journée.
0