日期:2014-05-17  浏览次数:20542 次

这样的字符串怎么解析
下边是文件中一行字符串:
[2007-08-01   00:00:00]   218.200.244.69   -   -   "GET   /cmcc/ani/klfyt_detail_at.jsp?nofee=1&type=video&id=10477&sid=GUIBWqU0F57trFtS&dirid=0428100540&p=1&session=&MISC_ID=999&MISC_SessionID=999-df1b2815!1434701435!1257454712!1185897536315&MISC_ServiceID=30070881&MISC_AccessMode=2&MISC_MID=00110080331963   HTTP/1.0 "   200   8376   "- "   "TSD-TP005 "   wap.chinam.com   1


我想取如下数据,大家帮忙看看应该怎么解析:
[2007-08-01   00:00:00]
218.200.244.69
-
-
"GET   /cmcc/ani/klfyt_detail_at.jsp?nofee=1&type=video&id=10477&sid=GUIBWqU0F57trFtS&dirid=0428100540&p=1&session=&MISC_ID=999&MISC_SessionID=999-df1b2815!1434701435!1257454712!1185897536315&MISC_ServiceID=30070881&MISC_AccessMode=2&MISC_MID=00110080331963   HTTP/1.0 "
200
8376
-
"TSD-TP005 "
wap.chinam.com
1

------解决方案--------------------
<?php

$html = "[2007-08-01 00:00:00] 218.200.244.69 - - \ "
GET /cmcc/ani/klfyt_detail_at.jsp?nofee=1&type=video&id=10477&sid=GUIBWqU0F57trFtS
&dirid=0428100540&p=1&session=&MISC_ID=999&MISC_SessionID=999-df1b2815!1434701435!
1257454712!1185897536315&MISC_ServiceID=30070881&MISC_AccessMode=2&MISC_MID=00110080331963
HTTP/1.0\ " 200 8376 \ "-\ " \ "TSD-TP005\ " wap.chinam.com 1 ";

$match = '/\[([^]]*)\]([^ "]*)\ "([^ "]*)\ "/is ';
$re = preg_match_all (
$match,
$html,
$out);
print_r( $out );
echo $re;

?>
后面的照写就成
------解决方案--------------------
参考:
===============================
$str = '[2007-08-01 00:00:00] 218.200.244.69 - - "GET /cmcc/ani/klfyt_detail_at.jsp?nofee=1&type=video&id=10477&sid=GUIBWqU0F57trFtS&dirid=0428100540&p=1&session=&MISC_ID=999&MISC_SessionID=999-df1b2815!1434701435!1257454712!1185897536315&MISC_ServiceID=30070881&MISC_AccessMode=2&MISC_MID=00110080331963 HTTP/1.0 " 200 8376 "- " "TSD-TP005 " wap.chinam.com 1 ';

$arr = preg_match_all( '/(\ "(.[^\ "]*?)\ ")|(\[(.[^\]]*?)\])|(\s(.[^\s+]*?)\s)|(.[^\s]*)/ ',$str,$m);
print_r($m[0]);
------解决方案--------------------
$s = < < <H
[2007-08-01 00:00:00] 218.200.244.69 - - "GET /cmcc/ani/klfyt_detail_at.jsp?nofee=1&type=video&id=10477&sid=GUIBWqU0F57trFtS&
dirid=0428100540&p=1&session=&MISC_ID=999&MISC_SessionID=999-df1b2815!1434701435!1257454712!1185897536315&MISC_ServiceID=3007
0881&MISC_AccessMode=2&MISC_MID=00110080331963 HTTP/1.0 " 200 8376 "- " "TSD-TP005 " wap.chinam.com 1
H;
$r = preg_split( "/\s+/ ",$s);
print_r($r);