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

Résolu/Fermé
Synerz Messages postés 1233 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 - Modifié par Synerz le 5/02/2015 à 11:35
Synerz Messages postés 1233 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 - 8 févr. 2015 à 12:40
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
Modifié par ThEBiShOp le 5/02/2015 à 11:56
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 1233 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
5 févr. 2015 à 11:52
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
5 févr. 2015 à 11:56
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 1233 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116 > ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021
Modifié par Synerz le 5/02/2015 à 12:03
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
5 févr. 2015 à 13:28
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 1233 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116 > ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021
5 févr. 2015 à 14:03
ç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