[PHP] Expression régulière php et fontion file_exists [Réglé]

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
J'ai un certain nombre de fichiers de logs qui arrivent dans un répertoire de mon serveur web.
Ils sont du type : rsync_AAAA-MM-JJ_HH-MM-SS.log
L'heure change, car même si ça se déclenche une fois par jour, je ne suis pas certain que cron le lance pile à 22:00:00.
Parfois c'est 22:00:01.
Je liste les fichiers comme ceci:
Code PHP :
<?php for($time=0; $time<(86400*30); $time+=86400) { $date=date('Y-m-d', time()-$time); echo $date; if(file_exists("rsync_".$date."_22-00-01.log")) { echo "Fichier existant"; } else echo "Introuvable !"; echo "<br/>"; } ?>
Ma question est de savoir comment je peux enlever le 22-00-01 présent dans la ligne if(file_exists("rsync_".$date."_22-00-01.log")) { par une expression régulière ou autre ?
J'ai essayé * en vain.
Là, je fais appel à des experts PHP !
Merci

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
du coup, j'ai fait comme ça, mais il y a sans doute plus simple:
Code PHP :
<table border=1px> <tr> <td> Date </td> <td> Statut </td> <td> Details fichiers </td> <tr> <?php for($time=0; $time<(86400*30); $time+=86400) { echo "<tr>"; $datelog=date('Y-m-d', time()-$time); $datehumain=date('d/m/Y', time()-$time); echo "<td>".$datehumain."</td>"; $heurelog = null; foreach (glob("synchro_".$datelog."*.log" ) as $filename) { $heurelog[] = substr($filename, 19, 8); } if ($heurelog != null) { echo "<td bgcolor="#86FE73">OK</td>"; echo "<td>"; foreach ($heurelog as $heure){ echo "<a href='synchro_".$datelog."_".$heure.".log' />".str_replace("-",":", $heure)."</a> "; } echo "</td>"; } else { echo "<td bgcolor="#FE7373">KO</td>"; } echo "</tr>"; } ?> </table>
A noter que les logs ressemblent à ça:
Code BASH :
root@serveur:/var/www/synchro# ls -c1X synchro_2013-04-17_11-50-41.log synchro_2013-04-17_11-53-13.log synchro_2013-04-17_22-00-01.log synchro_2013-04-18_22-00-02.log synchro.php synchro.php.save
Ce qui donne:

Je passe en résolu, même si j'ai trouvé seul. J'accepte évidemment les critiques sur le code.
Merci

Edit :
Et si on veut faire ça bien, avec de la couleur et tout sur la même page :

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


PaLmAs Membre non connecté
-
- Voir le profil du membre PaLmAs
- Inscrit le : 02/04/2007
- Groupes :
Code PHP :
$date = date(Y-m-d); $repertoire = opendir(ton répertoire on se trouve tes fichiers log); while($Entrer = @readdir($repertoire)) //boucle pour recuperer tous les fichier { if ($Entrer != '.' and $Entrer != '..') // elements à eliminer { $resultat = explode ('_', $Entrer); //on explose l'heure if($date == $resultat[1}) //logiquement date en position 1 { echo "Fichier existant"; } } }
En gros ...

PaLmAs Membre non connecté
-
- Voir le profil du membre PaLmAs
- Inscrit le : 02/04/2007
- Groupes :


Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
Je garde ce que tu as écrit sous le coude

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie