Foreach循环打印复制最后一个条目,输出到数据文件

时间:2014-05-30 00:36:19

标签: php foreach fwrite

我有一个foreach循环,循环显示html并将数据存储到数据文件中。问题(之前已经提出过)是foreach循环的最后一次声明是重复。使用 unset不起作用,因为它从foreach循环中写入数据文件!我该如何解决这个问题?我想删除副本并保持写入数据文件...

我的代码:

// Save data to a DAT file
$datafile = "datfile.dat";
$fh = fopen($datafile, 'w') or die("can't open file");

foreach($xml->DROP as $shipment) {
    $CONNOTE_ID = $shipment->HEADER->BILL_OF_LADING; // 20 CHARS
    $output = sprintf("%-20.20s", $CONNOTE_ID);
    echo $output;
    unset($shipment);
    fwrite($fh, $output);
}

$output .= "%%EOF";
fwrite($fh, $output);
echo "%%EOF";
fclose($fh);

XML:

<?xml version="1.0" encoding="UTF-8"?>
<ISHPMNT1>
<DROP>
<HEADER>
  <BILL_OF_LADING>VW038687030000006</BILL_OF_LADING>
</HEADER>
</DROP>
</ISHPMNT1>

1 个答案:

答案 0 :(得分:0)

问题在于我对fwrite如何工作的理解。我写了最后一个foreach'output'变量两次,第二次添加%% EOF因此它看起来像是foreach循环发送的副本。

固定编码部分:

echo $output;
fwrite($fh, $output);
}
fwrite($fh, "%%EOF");
感谢所有试图帮助的人!非常感谢