• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 322
  • Last Modified:

regex to get get 3 elements from a $string

[9/13/2011 6:36:41 PM] person1: Bob, this is AJ, please add me.
[9/14/2011 4:51:59 PM] person1: Hello
[9/15/2011 2:44:13 AM] person2: 
[1/6/2012 10:57:09 AM] person1: Bob, you there
[1/6/2012 10:57:11 AM] person1: It is AJ
[1/6/2012 10:57:34 AM] person2: hi AJ
[1/6/2012 11:00:56 AM] person1: Happy New Year
[1/6/2012 11:00:58 AM] person1: How are you doing
[1/6/2012 11:01:09 AM] person2: happy new year to you too

Open in new window


this is a skype chat log
can be
$string
or
input.txt

want
datetime,
name (person1, person2)
message
0
rgb192
Asked:
rgb192
1 Solution
 
mickey159Commented:
$str="[9/13/2011 6:36:41 PM] person1: Bob, this is AJ, please add me.
[9/14/2011 4:51:59 PM] person1: Hello
[9/15/2011 2:44:13 AM] person2: 
[1/6/2012 10:57:09 AM] person1: Bob, you there
[1/6/2012 10:57:11 AM] person1: It is AJ
[1/6/2012 10:57:34 AM] person2: hi AJ
[1/6/2012 11:00:56 AM] person1: Happy New Year
[1/6/2012 11:00:58 AM] person1: How are you doing
[1/6/2012 11:01:09 AM] person2: happy new year to you too";

$a=explode("\n",$str);
foreach($a as $k=>$v){
preg_match("/([0-9:\/]+\s[0-9:]+\s[APM]+)\]\s(\w+)[:]{1}\s(.+)/",$v,$m);
$results[$k]["datetime"]=$m[1];
$results[$k]["name"]=$m[2];
$results[$k]["message"]=$m[3];
}

var_dump($results);

Open in new window


If you want a PHP formatted date, replace $m[1] with strtotime($m[1])
I hope this solve your problem.
0
 
rgb192Author Commented:
this printed all the rows of the input
thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now