fREAD一个文本文件来计算名称值的数量 - PHP

时间:2014-02-28 17:19:43

标签: php forms post count

我创建了一个用户输入数字的表单,然后使用fwrite将这些数据写入文本文件。

现在我的问题是,有没有办法在某种意义上阅读文件,但只有一个帖子..然后计算出已经发生了多少这样的文件,例如......

$data = sprintf("((%s,%s,%s))$s",
    $_POST['shapeType'],
    $_POST['circleRadius'],
    $_POST['circleColour'],
    PHP_EOL ); // automatically use the Operating System appropriate new line character sequence.
fwrite($handle, $data); }
fclose($handle);
?>

上面是fwrite,现在' shapeType'在这个特定的写作上是圆圈,有没有办法找到所有的shapeType帖子(其他形状像方形等..)因此产生一个

网站中存储了x个Shapes。

x显然取代了计算数量,任何想法?我对此非常新,所以完全不可能。

更新!! - 什么文本文件看起来像

((Circle,120,Red))((Triangle,190,120,90,Blue))

((圆,90,蓝色))((圆,20%,红色))

1 个答案:

答案 0 :(得分:0)

您可以将文件的每一行读入一个数组,然后遍历该数组。在查看每一行时,只需检查它是否与“圆圈”或其他内容匹配,如果是,则增加一个计数器。

<?php

$shape_type = $_POST['shapeType'];
$shape_counter = 0;

$lines = file($file_name);

foreach ($lines AS $line) {
    if (preg_match('/'.$shape_type.'/', $line)) {
        $shape_counter++;
    }
}

print "There are ".$shape_counter." amount of  ".$shape_type."s stored within the site.";

编辑:

如果您只是想获得总行数,那就更容易了。就这样做:

<?php

$lines = file($file_name);

print "There are ".count($lines)." amount of shapes stored within the site.";