【发布时间】:2015-03-27 10:33:06
【问题描述】:
聪明的头脑,请帮我拆分这个字符串。我想使用 preg_split 将其转换为数组,但我无法获得正确的正则表达式。
time:27/Mar/2015:17:56:12 +0900 host:210.210.210.210 user:- forwardedfor:- req:- method:- uri:- protocol:- status:200 size:0 reqsize:0 referer:-ua:- vhost:www.web.com reqtime:59.992 cache:- apptime:- https: session_id:
要求:
array(
'time' => '27/Mar/2015:17:56:12 +0900',
'host' => '210.210.210.210',
'user' => '-',
'forwardedfor' => '-',
'req' => '-',
'method' => '-',
'uri' => '-',
'protocol' => '-',
'status' => '200',
'size' => '0',
'reqsize' => '0',
'referer' => '-',
'ua' => '-',
'vhost' => 'www.web.com',
'reqtime' => '59.992',
'cache' => '-',
'apptime' => '-',
'https' => '',
'session_id' => ''
)
其实这是来自nginx的访问日志。我想正确格式化字符串,以便将其显示在表格中,这样更易于阅读。
【问题讨论】:
-
你能说每个名字和值后面都会有一个空格吗?
-
@anantkumarsingh 我试图执行这个 print_r(preg_split('/ {2,}/', "time:27/Mar/2015:17:56:12 +0900 host:210.210.210.210 user :- forwardedfor:- req:- method:- uri:- protocol:- status:200 size:0 reqsize:0 referer:-ua:- vhost:www.web.com reqtime:59.992 cache:- apptime:- https: session_id: "));在writecodeonline.com/php,但是结果不对。
-
explode 会是更好的选择
标签: php regex nginx split explode