如果IP匹配,则从CSV中删除一行

时间:2018-12-21 15:14:48

标签: php forms csv

我有一个CSV,其中包含IP,该IP的状态以及该状态的拉出时间(按此顺序)。我想做的是将IP输入到文本框中,如果找到该IP,它将从CSV中删除该行。

我尝试了以下代码,但似乎要做的就是删除文件中的所有内容

<?php
    $IP = $_POST['IP'];

    if ($_POST['submit']) {
        $file_handle = fopen("..\Database\statuses.csv", "w+");
        $myCsv = array();
        while (!feof($file_handle)) {
                $line_of_text = fgetcsv($file_handle, 1000);
                if ($IP != $line_of_text[0]) {
                    fputcsv($file_handle, $line_of_text);
                }
        }
        fclose($file_handle);
    }
?>

这是CSV的格式。它没有标题:

10.10.10.10,up,12/21/2018 9:12:26 AM
10.10.10.11,up,12/21/2018 9:12:35 AM

Id希望它读取CSV,并且如果从Web表单中提取的IP与第一列的值不匹配,则会将其写入CSV。

1 个答案:

答案 0 :(得分:1)

很难读取和写入同一文件,并且期望它在行长等方面做任何有意义的事情。

此代码仅读取(使用df = pd.DataFrame({'a':[1,2,3,4,5,6], 'b':['cats','dogs','birds','pianos','elephant','dinos'], 'Region' : ['EM', 'US', 'US', 'Europe', 'Asia', 'Asia']}) )中的所有文件,然后过滤出以IP地址开头的行。

file()

一次性将文件写回。