[PHP] affichier tout les fichiers commençant par "www"

Résolu
Synerz Messages postés 1234 Date d'inscription   Statut Membre Dernière intervention   -  
Synerz Messages postés 1234 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon code PHP :

<?php
//recuperation de la variable
$ID = isset($_GET['ID']) && !empty($_GET['ID'])?$_GET['ID']:NULL;

if($ID){
//Test de l'ID
switch($ID){
 case "3fuHXxYxaTJ84NQygauXCchT" :
   $nom_repertoire = '/opt/Fichier HAR/';
   $ficher = "www.*";
   break;
  
  case "8FFSkmwmRAbrHMpfnAfqdDLC" :
   $nom_repertoire = '/opt/Fichier HAR/';
   $ficher = "test2*";
   break;
  
  case "Emarf6d6rfqh7T8bDukG9YVb" :
   $nom_repertoire = '/Fichier HAR/';
   $ficher = "test3*";
   break;

  default:
  echo "<br>ERREUR : ID Inconnu ! "; 
}

  //--- LECTURE ---
  //on ouvre le repertoire
  $pointeur = opendir($nom_repertoire);
  while ($file = readdir($pointeur)){
    if ($file == $ficher){
    echo $file."<br/>";
  }
 }  
 closedir($pointeur);
   
}else{
 echo "<br> ERREUR ! NO ID !!";
}

?>



En gros j'aimerai que si c'est la première ID qui est récupérer j'affiche tout les fichiers qui commence par "www." sinon par "test* etc etc. Je sais que "*" ne marche pas vu que j'ai mis "=" donc j'aimerai un peu d'aide merci :)
Un peu d'aide contre un topic résolu !
A voir également:

1 réponse

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

Tu peux utiliser un substr pour connaitre le début de ton fichier.
Vérifie ce que tu as dans $file, il faudra peut être passer par un explode pour être sûr de n'avoir que le nom du fichier.

Sinon, encore plus simple, tu as ça :

<?php
foreach(glob('chemin/vers/ton/dossier/rapport*.txt') as $file){
 echo $file.'<br />';
}
// Affichera seulement les fichiers .txt qui commencent par "rapport"
0
Synerz Messages postés 1234 Date d'inscription   Statut Membre Dernière intervention   116
 
Merci de ta réponse :)
Si j'utilise la deuxième solution je suis obliger de mettre cette partie de code dans une boucle pour différencier les trois ID ?
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
non, tu peux constituer ta chaine à partir de ton $fichier :

<?php
foreach(glob('chemin/vers/ton/dossier/'.$fichier.'.txt') as $file){
 echo $file.'<br />';
}
// Affichera seulement les fichiers .txt qui commencent par le contenu de $fichier
0
Synerz Messages postés 1234 Date d'inscription   Statut Membre Dernière intervention   116 > ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention  
 
Donc comme ça ?
  $pointeur = opendir($nom_repertoire);
  while ($file = readdir($pointeur)){
    if foreach(glob('/opt/Fichier HAR/'.$fichier.'.txt') as $file){
 echo $file.'<br />';

0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
je pense, je n'ai pas testé, mais dans la logique ça doit être un truc comme ça, teste donc :)
0
Synerz Messages postés 1234 Date d'inscription   Statut Membre Dernière intervention   116 > ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention  
 
ça ne fonctionne pas :/
J'ai cette erreur dans ma page de log :PHP Parse error: syntax error, unexpected T_FOREACH, expecting '(' in /var/www/html/index.php on line 31
0