Effacer lignes spécifique d'une longue chaîne de caractere

Par Intertoxx, il y a 10 ans


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, il y a 10 ans

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]'); ?

Intertoxx, il y a 10 ans

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

Naïr, il y a 10 ans

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;

Intertoxx, il y a 10 ans
$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