我有以下代码片段,我试图用它来读取一个文件,其中一些行可能重复两次或更多次。该脚本的目标是只编写唯一的行(不重复),但由于某种原因,它似乎没有检测到相等性。有什么想法吗?
$handle = @fopen("Old.csv", "r");
$new = @fopen("New.csv", "w");
$last_line = null;
if ($handle && $new) {
while (($buffer = fgets($handle, 4096)) !== false) {
if( $last_line != $buffer ) fwrite( $new, $buffer );
$last_line = $buffer;
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
fclose($new);
}
这是“Old.csv”的示例
apple
apple
orange
grapes
grapes
grapes
“New.csv”应该是:
apple
orange
grapes
但它最终成为“Old.csv”的精确副本。