PHP代码脚本:怎样使用正则表达式提取文本或日志数据?
使用正则表达式读取数据是一种事半功倍的数据爬取和分析方式,如果我们对weblog日志进行分析,需要提取某些站点的日志,那么就可以借助于正则表达式,逐行扫描,然后提取符合条件的日志。也可以逐行扫描后,将日志分析分解为字段,然后录入数据库。下面是一个使用正则表达式读取文本数据的php代码实例:
public function parseLog()
{
$log_file = Http::getLog();
if (!is_file($log_file )) {
$this->log("$log_file file not fond");
return;
}
$items = file($log_file , FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (!is_array($items)) {
$this->log("get $log_file content fail");
return;
}
foreach ($items as $content) {
if (preg_match("/\s*(\S+)\s+(\S.+)/", $content, $match)) {
$time = $match[1];
$requestvars= $match[2];
$requests= explode(' ', substr($requestvars, 0, -1));
foreach ($requests as $request) {
self::$mapVars[$request] = $time;
}
}
}
}









442956988