if elseif indie while循环

时间:2012-03-02 04:54:16

标签: php while-loop if-statement

我正在尝试通过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);

它没有抛出任何错误,但似乎忽略了整个条件块。帮助

2 个答案:

答案 0 :(得分:0)

检查文件是否正确打开或没有。 在try catch中编写该代码,如果有任何错误,那么您可以找到它。 我认为你的文件不包含任何东西,或者它没有成功打开。

答案 1 :(得分:0)

你不是在$file_handle任何地方读书。 feof($file_handle)永远不会成真。发布后,这段代码应该永远循环。

(顺便说一下,像这样使用feof通常不是你想要的方式,因为这个原因等等。更好的是while (($line = however_you_read($file_handle)) !== FALSE)。)几乎所有的流阅读功能对任何错误或EOF返回FALSE。)