PHP Regex打印并计算特定列中的值

时间:2018-02-05 20:16:27

标签: php regex

我有一个用PHP读取的文件(file.txt)。

这就是现在的样子:

<?php

$file = fopen("document/test.txt", "r");

if ($file === FALSE) {
    die("Nothing found.");
}

$sum = 0;
while (($data = fgetcsv($file, 0, "\t")) !== FALSE) {
    $sum += (double) $data[11];
}
fclose($file);
echo "Total: " . $sum;

?>

2 个答案:

答案 0 :(得分:1)

这些实际上是制表符分隔值,是 csv 的“方言”。 PHP附带csv support

$fd = fopen("filename", "r");
if ($fd === FALSE) {
    die("Failed to open file");
}
$sum = 0;
while (($data = fgetcsv($fd, 0, "\t")) !== FALSE) {
    $sum += (double) $data[11];
}
fclose($fd);
echo $sum;

答案 1 :(得分:0)

这将获得每行中的第12列,并将其放入捕获组1中。

(?m)^(?:[^\t]*\t){11}([^\t]*)

格式化

 (?m)
 ^ 
 (?: [^\t]* \t ){11}
 ( [^\t]* )             # (1)