Comment ouvrir un fichier dont je connais pas le nom entier?

sugmados
Invité n'ayant pas de compte PHPfrance

04 avr. 2013, 20:11

Bonjour!
J'ai besoin en urgence d'une aide par rapport à un imppératif pour moi.
Au faite j'ai un script php prend dans un dossier un fichier de type txt qu'il ouvre, lit ligne par ligne, exécute un certain nombre d'instruction puis ferme le fichier
Maintenant au lieu d'un fichier dans le dossier il y aurait plusieurs dont le nom serais le même au début à la différence que ceux ci seront désormais précéder de la valeurs temps comme par exemple: test_04042013_822.txt
donc vu que mon script au départ ne saura exactement le nom des fichiers, je voudrais savoir s'il existe une fonction en php qui peux prendre en compte tous les fichiers dont les noms commences par "test" en tenant compte de la variable temps pour les exécuter un à un?
Merci......

Mammouth du PHP | 2278 Messages

04 avr. 2013, 20:30

Cette valeur de temps comme par exemple: test_04042013_822.txta été établie au moment de la création du fichier?
Comment la retrouver à l'exécution?
Maintenant si tous les fichiers commençant doivent être exécutés, ou si tous les fichiers d'un répertoire doivent être exécutésva voir dans les contributions de:
http://www.php.net/manual/fr/function.is-dir.phpchez John Doe
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Mammouth du PHP | 571 Messages

04 avr. 2013, 22:07

il est beaucoup plus facile de retrouver les noms des fichiers connaissant le répertoire dans lequel ils se trouvent.la fonction scandir liste les fichiers et les répertoires dans un répertoire. Il suffit de passer en paramètre le repertoire contenant les fichiers à la fonction scandir.
$dir = 'tonRepertoire/';

$files1 = scandir($dir);
print_r($files1);

sugmados
Invité n'ayant pas de compte PHPfrance

04 avr. 2013, 23:12

Je m'explique.
- La banque dois me déposer chaque 5 minuite dans un dossier precis un fichier texte contenant des informations de translation bancaire.
- Mon script php rentre dans le dossier chaque une minuite pour charger le contenu du fichier dans ma base de données
- Au cas où la banque aura des problèmes de connexion internet, vu qu'il genere automatiquement par un script aussi le fichier texte et envoi sur mon serveur par ftp, il risque d’écraser à chaque 5 minuites le fichier générer avant car si le fichier porte le meme nom et que au bout de 5 minuite il na pas pu me l'envoyer, une autre opération de génération de fichier sera exécuter et va écraser le fichier existant.
- Alors la banque e propose de m'envoyer des fichiers avec des paramètre temps de création du fichier sans modifier le nom initial comme par exemple:test_date_heure
- Dans ce cas vu que au paravent mon script prenait un seul fichier avec le nom complet comme paramétré, je sais pas comment opérer pour prendre en compte séparément tous les fichiers commençant par test_ et les reverser dans ma base de données vu que le reste des paramétrés n'est pas connu au préalable par mon script.
Merci de m'aider svp...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 avr. 2013, 23:45

fonction glob+ un foreach pour le reste

ou utiliser la classe DirectoryIterator

pour info tes paramètres de temps ne sont pas les notre ....

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

05 avr. 2013, 09:18

Il suffit d'utiliser fileatime($nom_fic) de chaque fichier et de prendre le plus récent.
Sinon, si la partie temps du fichier est un timestamp, il suffit de les comparer (bête tri à bulle)
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD