Мне нужен способ захвата даты и времени между квадратными скобками. Так что для следующей строки:Захват даты и времени между квадратными скобками в PHP с использованием preg_match
$str= '10.1.1.107 - - [27/Oct/2016:06:40:58 +0000] "GET /advise/asi/3571502300/sky/2/con/113 HTTP/1.1"';
Я Тринг, чтобы получить advise
и con
следующим образом:
preg_match("/advise\/([a-zA-Z0-9\-]+)\/sky\/2\/.*con\/([0-9]+)/", $str, $matches);
Функция возвращает следующее $matches
:
Array (
[0] =>
array(2) {
[0]=>
"3571502300"
[1]=>
"113"
}
)
Тогда я хочу получить дату и время между квадратными скобками, у меня есть следующее регулярное выражение:
/\[([0[1-9]|[1-2][0-9]|3[0-1]\/Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec\/20\d\d:\d{2}:\d{2}:\d{2}\+0000)]\]\/advise\/([a-zA-Z0-9\-]+)\/sky\/2\/.* con\/([0-9]+)/
Это мое регулярное выражение не так?
Я получаю массив так:
Array (
[0] =>
array(3) {
[0]=>
27/Oct/2016:06:40:58 +0000
[1]=>
"3571502300"
[2]=>
"113"
}
)
Формат DATETIME вы упомянули правильно –