Avatar billede fixbabe Nybegynder
31. december 2006 - 01:50 Der er 5 kommentarer og
1 løsning

Fra log til variabel

Jeg søger en script der kan køre en række logs igennem som ligger i mappen "/home/server/server/cstrike/logs"

Scriptet skal søge efter linjer som denne "L 12/30/2006 - 22:55:23: [SBSRV] Player with id STEAM_0:1:10002093 is banned." også hente hele steamid og lave det til en variabel som jeg så kan gemme.

scriptet skal efter det har tjekket en log så fjerne denne log fra mappen.
Avatar billede coderdk Praktikant
31. december 2006 - 16:19 #1
<?php

    $res = array();
    $files = glob( "/home/server/server/cstrike/logs/*" );
    foreach ( $files as $fil )
    {
        $cnts = file_get_contents( $fil );
        if ( preg_match_all( "/SBSRV\] Player with id (STEAM_[^ ]+) is banned/", $cnts, $m ) )
        {
            $res = array_merge( $res, $m[1] );
        }
        unlink( $fil );
    }
    $res = array_unique( $res );
    echo "<pre>"; var_dump( $res ); echo "</pre>";

?>

$res indeholder så et array med steam_id's - jeg vil anbefale dig at udkommentere unlink() først og teste at det virker, og udvide med hvad du skal (hvis du skal gemme disse bans)
Avatar billede coderdk Praktikant
31. december 2006 - 16:19 #2
Huske at /home/server/server/cstrike/logs/ skal have 777-rettigheder
Avatar billede fixbabe Nybegynder
01. januar 2007 - 14:09 #3
Det virker som det skal, hvordan får jeg udskrevet steamid som variabel så jeg kan gemme dem i en mysql database?
Avatar billede coderdk Praktikant
01. januar 2007 - 15:06 #4
F.eks.

foreach ( $res as $steamid )
{
  $sql = "INSERT INTO steambans (steamid) VALUES ('" . $steamid . "')";
  mysql_query( $sql ) or die( mysql_error() );
}
Avatar billede fixbabe Nybegynder
01. januar 2007 - 15:08 #5
<?php

    $res = array();
    $files = glob( "/home/server/server/cstrike/logs/*" );
    foreach ( $files as $fil )
    {
        $cnts = file_get_contents( $fil );
        if ( preg_match_all( "/SBSRV\] Player with id (STEAM_[^ ]+) is banned/", $cnts, $m ) )
        {
            $res = array_merge( $res, $m[1] );
        }
        unlink( $fil );
    }
    $res = array_unique( $res );
    foreach ( $res as $steamid )
{
  $sql = "INSERT INTO steambans (steamid) VALUES ('" . $steamid . "')";
  mysql_query( $sql ) or die( mysql_error() );
}

?>

Sådan?
Avatar billede fixbabe Nybegynder
01. januar 2007 - 15:38 #6
ja sådan :) takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging