Arceny
Новичок
Разбить строку с помощью preg_split
Здравствуйте! Нужно разбить строку log файла вида
10.128.62.212 - - [13/Dec/2008:17:29:19 +0300] "GET /mediawiki/index.php/%d0%9a%d1%83%d1%80%d1%81%d0%be%d0%b2%d0%b0%d1%8f_%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0_%d0%bf%d0%be_%d0%b4%d0%b8%d1%81%d1%86%d0%b8%d0%bf%d0%bb%d0%b8%d0%bd%d0%b5_\"%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%b8_%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5_Web-%d1%83%d0%b7%d0%bb%d0%be%d0%b2\" HTTP/1.0" 200 11844 "http://lug32.b-metro.net/mediawiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:MovePage&action=submit" "Mozilla/5.0 (X11; U; Linux x86_64; ru-RU; rv:1.9.0.4) Gecko/2008112309 Iceweasel/3.0.4 (Debian-3.0.4-1)"
193.110.113.77 - "" [13/Dec/2008:10:37:01 +0300] "HEAD /forum/index.php HTTP/1.0" 200 - "-" "Mozilla/3.0 (compatible; Indy Library)"
10.106.1.158 - - [13/Dec/2008:10:37:34 +0300] "GET /vangog/i/4/8/485a62c80240f.jpg HTTP/1.0" 404 401 "http://forum.b-metro.net/viewtopic.php?f=78&t=12512&start=50" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
66.249.71.57 - - [13/Dec/2008:10:38:36 +0300] "GET /forum/viewtopic.php?f=12&t=322&start=0 HTTP/1.0" 200 6046 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
На подстроки. Как видно разделитель - пробел, но строки в кавычках тоже содержат пробелы, поэтому просто split'ать не получается. Посему необходимо написать регулярное выражение для preg_split которое реализовывало бы функционал заложеный в фразе "пробел, слева и справа от которого стоит цифра или небуква является разделителем" ...
Я много чего пытался, всяких извратов, но толком не получилось разделить.
Поэтому прошу помощи. Мне кажется что пример тривиален а я в силу того что знаком с регулярными выражениями 1й день не могу его осилить :unsure:
Здравствуйте! Нужно разбить строку log файла вида
10.128.62.212 - - [13/Dec/2008:17:29:19 +0300] "GET /mediawiki/index.php/%d0%9a%d1%83%d1%80%d1%81%d0%be%d0%b2%d0%b0%d1%8f_%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0_%d0%bf%d0%be_%d0%b4%d0%b8%d1%81%d1%86%d0%b8%d0%bf%d0%bb%d0%b8%d0%bd%d0%b5_\"%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%b8_%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5_Web-%d1%83%d0%b7%d0%bb%d0%be%d0%b2\" HTTP/1.0" 200 11844 "http://lug32.b-metro.net/mediawiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:MovePage&action=submit" "Mozilla/5.0 (X11; U; Linux x86_64; ru-RU; rv:1.9.0.4) Gecko/2008112309 Iceweasel/3.0.4 (Debian-3.0.4-1)"
193.110.113.77 - "" [13/Dec/2008:10:37:01 +0300] "HEAD /forum/index.php HTTP/1.0" 200 - "-" "Mozilla/3.0 (compatible; Indy Library)"
10.106.1.158 - - [13/Dec/2008:10:37:34 +0300] "GET /vangog/i/4/8/485a62c80240f.jpg HTTP/1.0" 404 401 "http://forum.b-metro.net/viewtopic.php?f=78&t=12512&start=50" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
66.249.71.57 - - [13/Dec/2008:10:38:36 +0300] "GET /forum/viewtopic.php?f=12&t=322&start=0 HTTP/1.0" 200 6046 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
На подстроки. Как видно разделитель - пробел, но строки в кавычках тоже содержат пробелы, поэтому просто split'ать не получается. Посему необходимо написать регулярное выражение для preg_split которое реализовывало бы функционал заложеный в фразе "пробел, слева и справа от которого стоит цифра или небуква является разделителем" ...
Я много чего пытался, всяких извратов, но толком не получилось разделить.
Поэтому прошу помощи. Мне кажется что пример тривиален а я в силу того что знаком с регулярными выражениями 1й день не могу его осилить :unsure: