大括弧で囲まれた日時を取得する方法が必要です。だから、次の文字列のために:preg_matchを使ってPHPで大括弧で囲まれた日付と時刻を取得する
$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"
}
)
あなたが言及した日時書式が正しいです –