Bonjour.
J'ai utilise un simple file_get_content pour recuperer les log d'un serveur de jeu mais je souhaiterais pouvoir cacher certaines lignes inutile sur un panel.

file_get_contents("*******************/logs/latest.log");

La ligne a cacher en question se présente sous ce format :

[16:37:18] [RCON Listener #2/INFO]: Rcon connection from:  

J'ai repensé mon code pour avoir celui ci mais il ne me renvoie rien:

                $result = "";

                $handle = fopen('*************/logs/latest.log', 'r');
                if ($handle)
                {
                    while (!feof($handle))
                    {
                        $buffer = fgets($handle);
                        if (preg_match("@^(?:[RCON Listener #2/INFO)?([^/]+)@i",$buffer)) {
                            $buffer = "";
                        }
                        $result = $return . " \n" . $buffer;
                    }
                    fclose($handle);
                }
                echo $result;

Merci de votre aide :-)

4 réponses


Naïr
Réponse acceptée

Tu l'as placé comment ton strpos() ?
Sinon, une autre chose que je viens de voir, sur cette ligne
$result = $return . " \n" . $buffer;

je pense que ça devrait être :
$result = $result . " \n" . $buffer;

Vu que tu n'as l'air d'utiliser le retour de ton preg_match uniquement pour vérifier s'il y a la chaîne [RCON Listener #2/INFO], peut être que tu devrais utiliser un strpos($buffer, '[RCON Listener #2/INFO]'); ?

J'ai en retour de tout le code du dessu mais avec le strpos une chaine vide :-/

 $result = "";

            $handle = fopen('ftp://****************/logs/latest.log', 'r');
            if ($handle)
            {
                while (!feof($handle))
                {
                    $buffer = fgets($handle);
                    if (strpos($buffer, '[RCON Listener #2/INFO]')) {
                        $buffer = "";
                    }
                    $result = $result . " \n" . $buffer;
                }
                fclose($handle);
            }
            echo $result;

J'ai en retour plusieurs ligne d'espace

EDIT : ça fonctionne merci de ton aide