我有一个.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);