douhua1890 2019-02-11 09:08
浏览 524
已采纳

如何检查txt文件中的重复内容?

I have a .txt file which contains objects on each line.Meaning the first line is "baby",second line "toddler",next line "dog" and the line after is "cat".

I want to be able to add objects into my txt file using php but i want to prevent duplicates.Somehow my codes only work for "dog".When i try to add "dog" it will say this object already exist but when i try "cat" / "baby" /"toddler" it still adds even though it is already in the list.

CODES

$check = false;
    if(isset($_POST['add'])){
        if($_POST['addLbl'] == ''){
            echo ' Please enter a label';
            $check = true;
        }
        else{
            $data = "
".$_POST['addLbl'];
            $file_lines = file('lbls/predefined_classes.txt');

            foreach($file_lines as $line){
                if($_POST['addLbl'] === $line){
                    $check = true;
                }
            }
            if($check === false){
                $ret = file_put_contents('lbls/predefined_classes.txt',$data,FILE_APPEND | LOCK_EX);
                    if($ret === false){
                        echo ' Unable to add.An error occurred.';
                    }
                    else{
                        echo ' Sucessfully added!';
                        $_POST['addLbl'] = '';
                    }
            }else{
                echo 'The label '.$_POST['addLbl'].' already exists.';
            }

        }

Txt File Content

  • 写回答

4条回答 默认 最新

  • doukefu1361 2019-02-11 09:20
    关注

    because you add list manualy and have white space in the end of each line add trim() function solve problem

    <?php
    
    $check = false;
    if(isset($_POST['add'])){
    
        if($_POST['addLbl'] == ''){
            echo ' Please enter a label';
            $check = true;
        }
        else{
            $data = "
    ".$_POST['addLbl'];
            $file_lines = file('lbls/predefined_classes.txt');
            foreach($file_lines as $line){
                if($_POST['addLbl'] === trim($line)){ // trim() added here
                    $check = true;
                }
            }
            if($check === false){
                $ret = file_put_contents('lbls/predefined_classes.txt',$data,FILE_APPEND | LOCK_EX);
                    if($ret === false){
                        echo ' Unable to add.An error occurred.';
                    }
                    else{
                        echo ' Sucessfully added!';
                        $_POST['addLbl'] = '';
                    }
            }else{
                echo 'The label '.$_POST['addLbl'].' already exists.';
            }
    
        }
    }
        ?>
    

    output test for cat :

    The label cat already exists.
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率