如何使用php停止将重复值写入文本文件

时间:2014-11-02 00:59:16

标签: php duplicates preg-split

我有一个每2秒重新加载一次的脚本,我创建了一个代码来为每个用户IP创建一个txt文件,并在其中写入用户名$name。我的问题是每次我的脚本重新加载它都会在每次重新加载时再次写入特定IP的$name。 代码是

 $ip_file = "ips/".$ip.".txt";

    $logip = fopen($ip_file,"a", 1);

    $name = $name."\n";

    fwrite($logip, $name);  

    fclose($logip);

    return;

我需要一些方法来验证名称是否已经在$ip_file中,如果它已经存在,那么就不要再写了。

这背后的想法是检查多个$name是否使用了相同的IP,然后创建一个函数来检查所有$ip_file个文件是否超过1 $name和如果是这样的话,禁止违反$ip

提前致谢

2 个答案:

答案 0 :(得分:3)

$ip_file = "ips/".$ip.".txt";
$names = file_get_contents($ip_file); //read names into string
if(false === strpos($names,$name)) { //write name if it's not there already
    file_put_contents($ip_file,"$name\n",FILE_APPEND);
}

答案 1 :(得分:1)

这是你需要的吗?

<?php
$ip_file = "ips/".$ip.".txt";
$name = $name."\n";

if (file_exists($ip_file)) {

    $valueInFile = file_get_contents($ip_file, true);

    if ($valueInFile == $name) {
       //Do something
    }
} else {
    $logip = fopen($ip_file,"a", 1);
    fwrite($logip, $name);  
    fclose($logip);
}
return;
?>

自: http://php.net/manual/en/function.file-exists.php