我正在尝试通过php处理CSV文件,我让它工作。但是我需要根据一组条件改变这个阵列。
$file_handle = fopen($path, "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 100000);
if($currency == "US"){
$line_of_text[6] = str_replace ("if_you_find_this","change_to_this",$line_of_text[6]);
$line_of_text[6] = str_replace ("if_you_find_this","change_to_this",$line_of_text[6]);
} elseif($currency == "DE"){
$line_of_text[6] = str_replace ("if_you_find_this","change_to_this",$line_of_text[6]);
$line_of_text[6] = str_replace ("if_you_find_this","change_to_this",$line_of_text[6]);
}else {
echo "Something with currency handling went wrong. Please contact support.";
}
$data .= $line_of_text[0] . "," . $line_of_text[1] . "," . $line_of_text[2] . "," . $line_of_text[4] . "," . $line_of_text[6] . "," . $line_of_text[49] . "," . $line_of_text[51] . "\n";
}
fclose($file_handle);
$new_file_handle = fopen($path, "w");
fwrite($new_file_handle, $data);
它没有抛出任何错误,但似乎忽略了整个条件块。帮助
答案 0 :(得分:0)
检查文件是否正确打开或没有。 在try catch中编写该代码,如果有任何错误,那么您可以找到它。 我认为你的文件不包含任何东西,或者它没有成功打开。
答案 1 :(得分:0)
你不是在$file_handle
任何地方读书。 feof($file_handle)
永远不会成真。发布后,这段代码应该永远循环。
(顺便说一下,像这样使用feof
通常不是你想要的方式,因为这个原因等等。更好的是while (($line = however_you_read($file_handle)) !== FALSE)
。)几乎所有的流阅读功能对任何错误或EOF返回FALSE
。)