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