如何检查txt文件中是否已存在值

时间:2016-07-20 22:29:52

标签: php file-get-contents

我正在将UserID写入一个与||分开的文本文件 var $UserID是一个整数,如1,2,3等。

如果用户的ID为1;该值存储在txt文件中并照看一段时间,如下所示:

1||1||1||1||1||...

我想要实现的目标:  如果ID已存储在txt文件中,请不要再次存储。

这就是我的安慰;

$UserIdtxt = $UserID."||";


$ID = explode("||", file_get_contents("user_id.txt"));
  foreach($ID as $IDS) {

// here must come the check if the ID already is stored in the txt file
     if($IDS != $UserID) {
     file_put_contents("user_id.txt", $UserIdtxt, FILE_APPEND);

     }
  }

我如何进行检查?

2 个答案:

答案 0 :(得分:3)

您需要做的就是使用in_array()测试爆炸数组中的新ID是否正常

$UserIdtxt = $UserID."||";

$all_ids = explode("||", file_get_contents("user_id.txt"));

if ( ! in_array($UserID, $all_ids) ) {
    file_put_contents("user_id.txt", $UserIdtxt, FILE_APPEND);
}
  

但这是一种存储此类信息的可怕方式

答案 1 :(得分:0)

在扫描之前确保文件已成功读取是个好主意

if($source = file_get_contents("user_id.txt"){
    if(!preg_match("/^($UserID|.*\|\|$UserID)/", $source){
        ... //add id to file
    }
}else{/*Todo: handle file-open failure*/}