Ouvrir des fichiers en faisant une boucle en php

Eléphanteau du PHP | 13 Messages

20 janv. 2016, 11:38

Bonjour,

J'aimerai ouvrir le fichier en gras:
"parse/test_log/20160119-052703-2061_user.log"

Il contient une liste comme celle ci (xml):
<include url="testerman:[b]///[/b]path/du/fichier/à/parser1.log" timestamp="1453178690.45" class="core"></include>
<include url="testerman:[b]///[/b]path/du/fichier/à/parser2.log" timestamp="1453178690.45" class="core"></include>
Il faudrait que j’enlève les '///' et stocker dans une variable "path/du/fichier/à/parser1.log" et "path/du/fichier/à/parser2.log"

Puis faire un boucle sur les fichiers parser1.log parser2.log qui exécuterai du code qui fonctionne après !

J’espère que j'ai été clair dans mes explications.

Merci de votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

20 janv. 2016, 15:35

Bonjour,

Tu peux utiliser preg_match_all() avec l'expression régulière qui va bien, puis un foreach() des $matches du preg_match_all() et ça va fonctionner :)
preg_match_all : http://php.net/preg_match_all
Regex : https://www.regex101.com/r/rO4aZ8/1
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 13 Messages

21 janv. 2016, 10:52

Bonjour,

Merci pour votre réponse.

Avec mon code ci-dessous j'essaye d'ouvrir mon fichier ($most_recent_file) puis ensuite j'aimeai le parser avec ce que vous m'avez dit ci-dessus.

if($path_folder_file_log = opendir($PATH))
{
    while(false !== ($file = readdir($path_folder_file_log)))
    {
        if($file != "." && $file != "..")
        {
            if($most_recent_file)
            {
                if ( date("YmdHis", filemtime($file)) > date("YmdHis", filemtime($most_recent_file)) )
                {
                    $most_recent_file = $file;
                }
            }
            else
            {
                $most_recent_file = $file;
            }
        }
    }

    closedir($path_folder_file_log);
    //echo $most_recent_file;

}


$file_log = fopen($PATH . $most_recent_file, "r+" );



if($file_log == false)
{
    echo "Fichier non ouvert";
}

fclose($file_log);
Merci de ton aide et de tes conseils!

Bonne journée à toi :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

21 janv. 2016, 17:41

Je t'ai donné tous les éléments pour le faire toi même, maintenant c'est à toi de jouer/tester/échouer/réessayer :)
Quand tout le reste a échoué, lisez le mode d'emploi...