PHP fgetcsv()搜索并覆盖文件


PHP fgetcsv() search and overwrite file

我有一个.csv文件,其中包含"code"answers"description"。我想搜索.csv,如果它找到重复的"代码",请替换整行。

即。csv文件的:

code          description
STA-101       A great product
STA-102       Terrible Product

如果要找到"STA-102",请用一些东西代替描述,即:

code          description
STA-101       A great product
STA-102       OK Product

这些是动态的,所以我需要一个if语句。这可以使用fgetcsv()完成吗
以下内容不起作用,但我现在只知道:

$row = 1;
if (($handle = fopen("formTest.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        $row++;
        for ($c=0; $c < $num; $c++) {
            if ($data[$c] = "STA-102") {
          $data[$c] = "OK Product"; }
            echo $data[$c] . "<br />'n";
        }
    }
    fclose($handle);
}

为了开始写入我的文件,我有:

$code = $_POST['CODE'];
$description = $_POST['DESC']; 
if ($_POST) {
    $csvData = $code . "," . $description. "'n";
    $fp = fopen("formTest.csv","ab"); 
    if($fp){
    fwrite($fp,$csvData);
    fclose($fp); }
}

如果需要的话,我如何将上面的内容与if语句结合起来以覆盖代码?

在您的示例中,分隔符是[tab](而不是',')。

 while (($data = fgetcsv($handle, 1000, "'t")) !== FALSE) {

开始时:

$res = "";

同样代替

for ($c=0; $c < $num; $c++) {
    if ($data[$c] = "STA-102") {
        $data[$c] = "OK Product"; }
    }
    echo $data[$c];

我想你想要

if ($data[0] == "STA-102") {
    $data[1] = "OK Product";
}
$res .= implode(''t', $data) . "'n";

以及fclose($handle)之后;

$handle = fopen("formTest.csv", "w"));
fwrite($handle, $res);
fclose($handle);