Alright. The text file in question is an online game server's log file (log.log being the file, the game being Halo). It has information in it that I would like to be extracted and put in a table in a php file. It needs to be polled regularly (maybe every 30 minutes). Here is a piece of the log file: - 2007-02-16 21:58:42 KILL "¬ÞØøþ¬" player 3 KILLED "MastaSpoofa" player 5
-
2007-02-16 21:58:43 CHAT GLOBAL [HIV]Cheefa what map
-
2007-02-16 21:58:44 CHAT GLOBAL MastaSpoofa LOL
-
2007-02-16 21:58:46 CHAT GLOBAL ¶®ïñ©eÒf¶wñ lol on the gun
-
2007-02-16 21:58:52 CHAT GLOBAL MastaSpoofa blood gulch
-
2007-02-16 21:58:53 CHAT GLOBAL MastaSpoofa go
-
2007-02-16 21:59:00 CHAT GLOBAL MastaSpoofa ice fields
-
2007-02-16 21:59:00 CHAT GLOBAL MastaSpoofa go
-
2007-02-16 21:59:04 SCORE CTF player 4 "¬ÞØøþ¬" team 0
-
2007-02-16 21:59:04 PCR_TEAM Team 0 Score 3
-
2007-02-16 21:59:04 PCR_TEAM Team 1 Score 0
-
2007-02-16 21:59:04 PCR_PLAYER Place 1 Player 4 "¬ÞØøþ¬" Team 0 Kills 6 Assists 1 Deaths 5 Score 2
-
2007-02-16 21:59:04 PCR_PLAYER Place 2 Player 2 "pikachu" Team 0 Kills 5 Assists 2 Deaths 4 Score 1
-
2007-02-16 21:59:04 PCR_PLAYER Place 3 Player 6 "MastaSpoofa" Team 1 Kills 6 Assists 0 Deaths 4 Score 0
-
2007-02-16 21:59:04 PCR_PLAYER Place 4 Player 5 "[HIV]Cheefa" Team 1 Kills 4 Assists 2 Deaths 3 Score 0
-
2007-02-16 21:59:04 PCR_PLAYER Place 5 Player 3 "Isaac" Team 0 Kills 3 Assists 2 Deaths 5 Score 0
-
2007-02-16 21:59:04 PCR_PLAYER Place 6 Player 1 "¶®ïñ©eÒf¶wñ" Team 1 Kills 2 Assists 3 Deaths 9 Score 0
The information I want to extract are in the lines with "PCR_TEAM" and "PCR_PLAYER," and I want all of the information in those lines which comes after the aforementioned strings to be displayed in tables in a php file (and maybe the date and time on the line, as well). They contain the scores for each team and each player at the end of every game. There are several instances of these in the log file, and I would like each instance to have its own table.
Here's an example of how I would like the information to be displayed in a table: - 2007-02-16
-
21:59:04
-
-
Place Name Team Kills Assists Deaths Score
-
-
1 ¬ÞØøþ¬ 0 6 1 5 2
-
2 pikachu 0 5 2 4 1
-
3 MastaSpoofa 1 6 0 4 0
-
4 [HIV]Cheefa 1 4 2 3 0
-
5 Isaac 0 3 2 5 0
-
6 ¶®ïñ©eÒf¶wñ 1 2 3 9 0
-
------------------------------------------------------------------
-
Team 0 3
-
Team 1 0
Would someone be kind enough to write a php file which will do that? I know next to nothing about php, so the code for this would need to be complete (as opposed to being just a certain part of the file) for me to be able to utilize it.
21 9730
Is there a way a line of the log can have properly seperated columns? now there are columns with five/four spaces in between and other with only one.
This will be needed to extract the data from every line.
Is there a way a line of the log can have properly seperated columns? now there are columns with five/four spaces in between and other with only one.
This will be needed to extract the data from every line.
The deliminators used are tabs. I *think* that's what you're wanting to know.
The deliminators used are tabs. I *think* that's what you're wanting to know.
i'm at work now but i will try to provide you with some code you need this evening.
i'm at work now but i will try to provide you with some code you need this evening.
Thanks, I appreciate it. :)
ok here we go :)
[PHP]
// fetches log files in an array per line
$lines = file('http://example.com/halo.log');
// two arrays to catch the things you need
$teams = array();
$players = array();
// fill the arrays
foreach($lines as $line){
if(preg_match('PCR_TEAM',$line)){ $teams[] = $line; }
if(preg_match('PCR_PLAYER',$line)){ $players[] = $line; }
}
[/PHP]
now whe have to get all the data out of the arrays
[PHP]
// get date from one of the arrays
$temp = $teams[0];
$temparr = split(' ',$temp);
$date = $temparr[0];
$time = $temparr[0];
// get teamdata out the team array
$teamnames = array();
$teamscore = array();
foreach($teams as $team){
$teamarr = split(' ',$team);
// this is a guess if the output isn't right adjust the numbers
$teamnames[] = $teamarr[3].' '.$teamarr[4];
$teamscore[] = $teamarr[6];
}
// get playerdata out of playes array
$playerplace = array();
$playername = array();
$playerteam = array();
$playerkills = array();
$playerassists = array();
$playerdeaths = array();
$playerscore = array();
foreach($players as $player){
$playerarr = split(' ',$player);
// this is a guess if the output isn't right adjust the numbers
$playerplace[] = $playerarr[4];
$playername[] = $playerarr[7];
$playerteam[] = $playerarr[9];
$playerkills[] = $playerarr[11];
$playerassists[] = $playerarr[13];
$playerdeaths[] = $playerarr[15];
$playerscore[] = $playerarr[17];
}
[/PHP]
and the final output
[PHP]
<p><?php echo $date; ?><br><?php echo $time; ?></p>
<table>
<tr><th>place</th><th>name</th><th>and so on</th></tr>
<?php
for($i = 0;$i<count($playerplace);$i++;){
echo '<tr><td>'.$playerplace[$i].'</td><td>'.$playername[$i].'</td><td>and so on</td></tr>';
}
for($i=0;$i<count(teamnames);$i++){
// change colspan if needed
echo '<tr><td colspan="4">'.$teamnames[$i].'</td><td>'.$teamscore.'</td></tr>';
}
?>
</table>
[/PHP]
Thanks. I'm getting this error, though: Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in <url> on line 17
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in <url> on line 19
It keeps repeating that over and over.
Thanks. I'm getting this error, though: Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in <url> on line 17
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in <url> on line 19
It keeps repeating that over and over.
sorry about that
[PHP]
foreach($lines as $line){
if(preg_match('PCR_TEAM',$line)){ $teams[] = $line; }
if(preg_match('PCR_PLAYER',$line)){ $players[] = $line; }
}
[/PHP]
should be
[PHP]
foreach($lines as $line){
if(preg_match('/PCR_TEAM/',$line)){ $teams[] = $line; }
if(preg_match('/PCR_PLAYER/',$line)){ $players[] = $line; }
}
[/PHP]
All it's outputting is this:
"place name and so on
Array"
:(
All it's outputting is this:
"place name and so on
Array"
:(
what does it output when you do
[PHP]
// after the first code block
print_r($teams);
// after the seccond code block
print_r($teamnames);
[/PHP]
"Array ( ) Array ( )
place name and so on
Array"
have you got the right link to your file?
have you got the right link to your file?
Yeah, it's right.
Yeah, it's right.
what gives
[PHP]print_r($lines);[/PHP]
as output?
what gives
[PHP]print_r($lines);[/PHP]
as output?
Ok, that worked. It output the entire log file.
Edit: the line breaks are messed up, though.
Ok, that worked. It output the entire log file.
Edit: the line breaks are messed up, though.
Can i see the output so i can catch where it goes wrong.
Can i see the output so i can catch where it goes wrong.
Copying and pasting it isn't working for some reason, so here's a pic of the top piece of it:
try this
[PHP]
foreach($lines as $line){
// this should give you two lines of output
if(preg_match('/PCR_TEAM/',$line)){ $teams[] = $line; echo $line; }
if(preg_match('/PCR_PLAYER/',$line)){ $players[] = $line; }
}
[/PHP]
No luck. It just goes back to:
"place name and so on
Array"
No luck. It just goes back to:
"place name and so on
Array"
can i have the link to the file or to a log file just like that. i will check it later.
What is the file format of of the log file? I tested it myself and i got strange characters? I checked it in my editor and i got UTF-16
http://xwerocode.110mb.com/halo.php
This is a test where i output the first 12 characters of each line. As you can see it's not 2007-02-17
I converted the log file to UTF-8 and i got this result after a few code changes
http://xwerocode.110mb.com/halo2.php
the code is
[PHP]
<html>
<head>
<title>log test</title>
</head>
<body>
<?php
// fetches log files in an array per line
// i used a converted log file
$lines = file('http://www.hivclan.org/tests/halo.log');
// two arrays to catch the things you need
$teams = array();
// fill the arrays
foreach($lines as $line){
if(preg_match('/PCR_TEAM/',$line)){ $teams[] = $line; }
}
// get teamdata out the team array
$teamnames = array();
$teamscore = array();
foreach($teams as $team){
$teamarr = split(chr(9),$team);
if(trim($teamarr[3]) == 'Score'){
$teamnames[] = $teamarr[2];
$teamscore[] = $teamarr[4];
}
}
?>
<table>
<tr><th>team</th><th>score</th></tr>
<?php
for($i=0;$i<count($teamnames);$i++){
// change colspan if needed
echo '<tr><td>'.$teamnames[$i].'</td><td>'.$teamscore[$i].'</td></tr>';
}
?>
</table>
</body>
</html>
[/PHP]
i noticed there are more than one tables to get generated from the log. this makes it a bit harder. more of a weekend job instead of a between the soup and potatoes job :)
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Joey Martin |
last post by:
I have been reading documentation on parsing. I need some help though.
I have the following in a text file:
$650
Number of Bedrooms 3
Air Conditioning? Yes
Original Ad SOUTH, 3BR, air, basement....
|
by: SROSeaner |
last post by:
I have a text file that is the result of using XMLHTTP object to pull back a
page of search results from a search engine.
So I have the entire results page in HTML, and want to break out each hit...
|
by: .Net Sports |
last post by:
In VB.net, I'm trying to do a couple of things in a couple of different
blocks of code. I need to take the first 25 characters of a text file,
then append at the end some ellipses and a MORE link...
|
by: kevin |
last post by:
I need to parse an third party supplied delimited or fixed width text file
into a datatable. The delimiter may vary.
I am currently using a SteamReader to read each line and, for delimited...
|
by: thenewuser |
last post by:
Hi all,
I am working on windows 2000 and using php 5.0 and apache 2.0.59.
I am facing a problem while parsing a text file.Actually I am using a pop server for parsing an email.I am downloading...
|
by: DCDeshpande |
last post by:
Hi,
I am new to Java and need to parse a simple txt file into unique tokens and store them in a data structure. Can someone please recommend the most efficient way to do this?
I found out that...
|
by: python |
last post by:
I'm parsing a text file for a proprietary product that has the following
2 directives:
#include <somefile>
#define <name<value>
Defined constants are referenced via <#name#syntax.
I'm...
|
by: sevak316 |
last post by:
Hello,
I stored a text file into an array. Now I am going through the array looking for a particular string. When I find that string, I want certain things that come after it to be stored into a...
|
by: lka527 |
last post by:
In the code, I have bold text where I have a question.
I am not sure how to parse the file into different fields (right below with bold: machine,plan,study,scantype, date)... and I have more...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
| |