计算字符串在文件中重复的次数?

时间:2014-10-29 16:13:59

标签: php text

我正在尝试创建一个脚本。重要的是它总是在文本文档中写入,所以我想要做的是计算它在该文档中写入的次数,有些类似于从数据库计算行。

这可能吗?

$myFile = "log.txt";
$OS = "It is running: ";
$ID = "System ID: ";
$Skip = "<br />";
$link = '<a href="';
$link2 = '/status.txt"> Click here to view if it is online</a>';
$fh = fopen($myFile, 'a') or die("can't open file");
$menu_text = $_POST['field1'];
$menu_text2 = $_POST['field2'];

if (empty($menu_text2)) {
    echo "No Data Has Been Posted";
    fclose($fh);
}
else {
    $stringData = $OS . $menu_text . $Skip . $ID . $menu_text2 . $link . $menu_text2 . $link2 . $Skip;
    fwrite($fh, $stringData);
    fclose($fh);
    print_r($menu_text2);
    mkdir($menu_text2, 0777);
}

2 个答案:

答案 0 :(得分:1)

我看到你在每一行的末尾写了一个<br />。如果$stringData = ...中没有其他变量包含<br />,则可以打开该文件并计算<br />发生的次数。

如果您可能有<br />(并且您可能menu_textmenu_text2是用户输入),那么您还应该添加一个新行,然后计算文件中的行数。请注意,您需要读取整个文件才能获得大文件可能不合适的计数。

您可以做的另一件事就是将计数存储在另一个文件中。

答案 1 :(得分:0)

$file = fopen($myFile, "r");
$count = 0;
while($row = fgets($file)) {
   if(strstr($row, "<br />") !== false)
       $count ++;
}
echo $count;