我有一个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>
答案 0 :(得分:0)
问题在于我对fwrite如何工作的理解。我写了最后一个foreach'output'变量两次,第二次添加%% EOF因此它看起来像是foreach循环发送的副本。
固定编码部分:
echo $output;
fwrite($fh, $output);
}
fwrite($fh, "%%EOF");
感谢所有试图帮助的人!非常感谢