如何检查值是否已存在于txt文件中
how to check if value already exists in txt file
我正在将 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);
}
}
我该如何进行检查?
您需要做的就是使用 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);
}
But this is an awful way of storing this kind of information
在扫描文件之前确保文件已成功读取是个好主意
if($source = file_get_contents("user_id.txt"){
if(!preg_match("/^($UserID|.*\|\|$UserID)/", $source){
... //add id to file
}
}else{/*Todo: handle file-open failure*/}
我正在将 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);
}
}
我该如何进行检查?
您需要做的就是使用 in_array()
$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);
}
But this is an awful way of storing this kind of information
在扫描文件之前确保文件已成功读取是个好主意
if($source = file_get_contents("user_id.txt"){
if(!preg_match("/^($UserID|.*\|\|$UserID)/", $source){
... //add id to file
}
}else{/*Todo: handle file-open failure*/}