<?php
$s = '192.168.0.3 - - [01/Jun/2005:01:31:36 -0400] "GET / HTTP/1.1" 403 276';
preg_match('/(.+) - - \[(.+)\] (".+)/',$s,$a);
print_r($a);
?>
Array
(
[0] => 192.168.0.3 - - [01/Jun/2005:01:31:36 -0400] "GET / HTTP/1.1" 403 276
[1] => 192.168.0.3
[2] => 01/Jun/2005:01:31:36 -0400
[3] => "GET / HTTP/1.1" 403 276
)
对于你的问题就是对$contents的每个元素执行上面的代码
$s = '192.168.0.3 - - [01/Jun/2005:01:31:36 -0400] "GET / HTTP/1.1" 403 276';
preg_match('/(.+) - - \[(.+)\] (".+)/',$s,$a);
print_r($a);
?>
Array
(
[0] => 192.168.0.3 - - [01/Jun/2005:01:31:36 -0400] "GET / HTTP/1.1" 403 276
[1] => 192.168.0.3
[2] => 01/Jun/2005:01:31:36 -0400
[3] => "GET / HTTP/1.1" 403 276
)
对于你的问题就是对$contents的每个元素执行上面的代码
$s="192.168.0.3 - - [01/Jun/2005:01:31:36 -0400] \"GET / HTTP/1.1\" 403 276";
$ip="((\d{1,3}\.){3}\d{1,3})";
preg_match("/^(".$ip.").+\[(.+)\](.+)$/", $s , $a);
echo $a[2]."<br>\n";
echo $a[4]."<br>\n";
echo $a[5]."<br>\n";