Explode() met spatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roy Bongers

Roy Bongers

24/01/2005 20:08:00
Quote Anchor link
Hallo ik heb een txt met daarin een log van een of ander progie. en nou wil ik ene paar dingen daar uit halen. Ik heb een goed idee van hoe ik dat wil doen maar php wilt niet meewerken. Het exploden op spatie wilt maar niet lukken. Dit is een heel simpele versie van het script. echo $data; geeft 5 mb aan tekst met een paar 100 spaties. functie explode geeft niks.... is er misschien een code zoals \t en \n voor een spatie. Of zou het kunnen dat dit geen echte spatie is :/ want volgesnmij heb ik wel vaker ge-explode op een spatie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
set_time_limit(0);
$data = '';

$i = 1;

$file = fopen ("netscreen.txt", "r");
while (!feof ($file)) {
    $data .= fgets($file, 4096);
}

fclose ($file);

$data = addslashes($data);
echo $data;
$data = explode(' ','SPATIE',$data);
echo $data[1];
echo $data[2];
echo $data[3];
echo $data[4];
echo $data[5];
echo $data[6];
?>
 
PHP hulp

PHP hulp

05/11/2024 11:35:11
 
Legolas

Legolas

24/01/2005 20:12:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
set_time_limit(0);
$data = '';

$i = 1;

$file = fopen ("netscreen.txt", "r");
while (!feof ($file)) {
    $data .= fgets($file, 4096);
}

fclose ($file);

$data = addslashes($data);
echo $data;
$data = explode(' ',$data);
echo $data[1];
echo $data[2];
echo $data[3];
echo $data[4];
echo $data[5];
echo $data[6];
?>
 
Roy Bongers

Roy Bongers

24/01/2005 20:24:00
Quote Anchor link
LOL ja klopt. dat was fout. Maar die fout heb ik pas op t laatst gemaakt. Even verschil tussen wat wel en wat nie werkt:
WEL:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
set_time_limit(0);
$data = '';

$i = 1;

$file = fopen ("netscreen.txt", "r");
while (!feof ($file)) {
    $data .= fgets($file, 4096);
}

fclose ($file);

$data = addslashes($data);
//echo $data;
/*
"2003-09-30 11:12:52"  
policy_id=138  
action=Deny  
src=80.15.220.12
dst=145.76.124.234  
dst_port=137
*/


$data_arr = explode('Local0.Notice', $data);

while ($i > 0 AND !empty($data_arr[$i]))
{

    $ii = 1;

    $dataat = $data_arr[$i];
    echo $dataat."<br />";
    $i++;
}

?>


dit geeft:

145.76.0.7 sxn-ns1: NetScreen device_id=sxn-ns1 system-notification-00257(traffic): start_time=\"2003-09-30 11:12:52\" duration=0 policy_id=138 service=NETBIOS (NS) proto=17 src zone=Untrust dst zone=Trust action=Deny sent=0 rcvd=0 src=80.15.220.12 dst=145.76.124.234 src_port=34162 dst_port=137<000> 2003-09-30 11:12:53

NIET:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
set_time_limit(0);
$data = '';

$i = 1;

$file = fopen ("netscreen.txt", "r");
while (!feof ($file)) {
    $data .= fgets($file, 4096);
}

fclose ($file);

$data = addslashes($data);
//echo $data;
/*
"2003-09-30 11:12:52"  
policy_id=138  
action=Deny  
src=80.15.220.12
dst=145.76.124.234  
dst_port=137
*/


$data_arr = explode('Local0.Notice', $data);

while ($i > 0 AND !empty($data_arr[$i]))
{

    $ii = 1;

    $dataat = $data_arr[$i];
    //echo $dataat."<br />";
    $dataat_arr = explode(' ', $dataat);

    while ($ii > 0 AND !empty($dataat_arr[$ii]))
    {

        echo $dataat_arr[$ii]."<br />";
        if (eregi("^src=(.*)$",$data2_arr[$ii]))
        echo "YES SRC GEVONDEN";
        
        $ii++;
    }

    $i++;
}

?>


Geeft:

NetScreen
device_id=sxn-ns1



Ik zie het verschil niet zo beide loops zijn volgensmij he zelfde. En toen ik net bij de $data helemaal bovenaan die explode deed werkte het WEL.

edit: het gaat me nu niet over die ergi want die zal ook wel fout zitten op dit moment maar dat kan ik zelf oplossen :)
Gewijzigd op 24/01/2005 20:26:00 door Roy Bongers
 
Roy Bongers

Roy Bongers

24/01/2005 20:47:00
Quote Anchor link
Ok ik heb de fout gevonden. t bleek dat ergens in die loop de var leeg kwam te zitten een daardoor stopte men loop er mee. Nu moet ik alleen een andere manier zien te vinden om te kijken wanneer men file ophoud.

iig bedankt :)
 
Roy Bongers

Roy Bongers

25/01/2005 15:17:00
Quote Anchor link
Nog even een ander vraagje.

In die logfile staan wel meer als 100.000 logs. Deze komen dan allemaal in de database te staan. Kan het zijn dat het dan uber lang gaat duren voordat het complete script klaar is of heeft dat alleen maar effect als je iets uit de database haalt?

Nu insert hij elke log en voert op het einde een keer een select query uit.

Alvast bedankt :)
 
Legolas

Legolas

25/01/2005 17:39:00
Quote Anchor link
insert je dan niet alles overnieuw de volgende keer dat je het script draait?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.