【发布时间】:2013-11-21 22:04:43
【问题描述】:
我正在尝试对我的访问日志文件进行表述,为此我只需逐行读取访问日志文件并从每一行中提取有用的信息,最后将它们添加到数据库中。
例如,一条线看起来像这样。
124.99.152.202 - naveen [22/Nov/2013:10:41:17 +1300] "GET /p/V4ZkA5d074CTy_vbFa7nLw,1385070078/IneedThisInteger/12.txt HTTP/1.1" "200" "3" "-" "Mozilla/5.0" "-"
我只知道如何提取IP地址。(使用this)
我要提取
这个请求值-
GET /p/V4ZkA5d074CTy_vbFa7nLw,1385070078,IneedThisInteger/12.txt HTTP/1.1上面部分的这个整数值-
IneedThisInteger此状态部分-
200此字节部分-
3
有时请求 URL 会更改它的 最后一部分,
"GET /p/V4ZkA5d074CTy_vbFa7nLw,1385070078,IneedThisInteger/FOLDER/12.txt HTTP/1.1"
"GET /p/V4ZkA5d074CTy_vbFa7nLw,1385070078,IneedThisInteger/FOLDER/ANOTHER FOLDER/12.txt HTTP/1.1"
"GET /p/V4ZkA5d074CTy_vbFa7nLw,1385070078,IneedThisInteger/FOLDER/ANOTHER FOLDER/HEREIS-ANOTHER-FOLDER-AND-SO-ON/12.txt HTTP/1.1"
所以我真的需要一种稳定的方法来从每一行获取这些值。我该怎么做?
【问题讨论】:
-
您通过选择适当的标签回答了您的问题:使用正则表达式
-
@kingkero 问题是如何使用正则表达式来做到这一点,我尝试使用上面提到的在线工具但失败了。
标签: php regex preg-match phrase