使用php读取,搜索字符串和修改txt文件的功能

时间:2017-03-21 20:43:38

标签: php

我正在写一个php函数,它必须逐行打开并读取保存在php文件的同一目录中的txt文件的内容,并检查该行的第一个值是否等于一个数字我将它作为函数的参数给出,如果该数字不在文件中,我将创建一个新行,其中包含数字,后跟另一个由空格分隔的信息。这个功能在Facebook Messenger机器人的webhook文件中,如果该功能没有被注释掉它并且我不知道为什么因为我多次检查了代码并且我没有&# 39; t发现错误。 该函数的代码是:

function messagesNumber($userid)
{
    $fo = ("url of the files", "a+");
    $found = false;
    if($fo) {
        $line = fgets($fo);
        while(! feof($fo) && $found == false) {
            $words = explode(" ", $line, 2);
            if($words[0] == $userid) {
                $found = true;
                $words[1] += 1;
                $messagges = $words [1];
                str_replace($line, $words, $fo);
            }
            $line = fgets($fo);
        }
        if(! $found) {
            fprintf($fo, "%d 1", $userid);
            $messages = 1;
        }
    }
    else
        $messagges = -1;
    fclose($fo);
    return $messagges;  
}

返回:如果文件无法打开,则返回-1,或者返回与每行的第二个数字一致的整数。

这是txt文件的一个示例:

282318736127 5
827813487273 3
...

第一个数字是Facebook分配给每个用户的ID,第二个数字是一个计数器,用于计算用户写入机器人的消息数量,每次特定用户向消息发送消息时,我都会增加最后一个数字。机器人。

1 个答案:

答案 0 :(得分:0)

很容易......你错过了$

if(! $found) {
    fprintf($fo, "%d 1", $userid);
    messages = 1; // missing $
}

if(! $found) {
    fprintf($fo, "%d 1", $userid);
    $messages = 1;
}

好的编辑......

很容易错过fopen

$fo = ("url of the files", "a+");

$fo = fopen("url of the files", "a+");