Paul Halliday wrote: > Whats the cleanest (I have a really ugly) way to break this: > > [21/Jul/2009:00:00:47 -0300] > > into: > > date=21/jul/2009 > time=00:00:47 > > Caveats: > > 1) if the day is < 10 the beginning of the string will look like "[<space>1/... > 2) the "-0300" will differ depending on DST or TZ. I don't need it > though, it just happens to be there. > > This is what I have (it works unless day < 10): > > $theParts = split("[\"]", $theCLF); > > // IP and date/time > $tmpParts = explode(" ", $theParts[0]); > $theIP = $tmpParts[0]; > $x = explode(":", $tmpParts[3]); > $theDate = str_replace("[","", $x[0]); > $theTime = "$x[1]:$x[2]:$x[3]"; > > the full text for this part looks like: > > 10.0.0.1 - - [21/Jul/2009:00:00:47 -0300] ... more stuff here > > Anyway, any help would be appreciated. > > thanks. > unset ($STRING,$pos,$pos2,$pos3,$L,$D,$T,$pos4,$NString); $STRING="10.0.0.1 - - [21/Jul/2009:00:00:47 -0300] ... more stuff here" $pos=strpos($STRING,"["); $pos2=strpos($STRING,"]"); $L=$pos2-$pos; $NString=substr($STRING,$pos,$L); $pos3=strpos($NString,":"); $D=substr($NString,0,$pos3); $pos4=$pos3++; $T=substr($NString,$pos4,8); echo "date=$D"; echo "time=$T"; untested, but that should be pretty much all you need. HTH, Wolf -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php