I have the following code which writes to a text file on the server and the outputs the file using headers. The problem I'm having is that once the text file is written, outputted and downloaded the initial contents are fine, however there is a load of line breaks at the bottom.
Any ideas, as I'm pulling my hair out over it!
Script: (note that I've been playing so some bits are probably not needed)
$string = "";
$newfilename = "$num.txt";
$filename ="orderssent/csvorder.txt";
if (file_exists($filename)) unlink($filename);
$myFile= fopen($filename,'w');
if(! $myFile){
print ("File could not be opened.");
exit;
}
$temp = mysql_query("SELECT Orders.ID AS orderid, Orders., Products. FROM Orders LEFT JOIN Products ON Orders.Product = Products.PartNumber WHERE Orders.OrderNumber='$num' AND Orders.Product != 'CARR1' AND Orders.Product != 'CARR2' ORDER BY Orders.Branch");
$temp2 = mysql_query("SELECT FROM OrderBase WHERE OrderNumber = '$num'");
$baseid = mysql_result($temp2, 0, id);
$odate = mysql_result($temp2, 0, OrderDate);
list ($year, $month, $day) = split ("-", $odate);
$odate = $day."/".$month."/".$year;
while ($row = mysql_fetch_array($temp)) {
$temp3 = mysql_query("SELECT FROM Branches WHERE BranchNumber = '$row[Branch]'");
$point = mysql_result($temp3, 0, POINT);
$start = substr($row[OrderNumber], 0, 3);
if ($start == "870") $depart = "LARGE ELECTRICAL";
else if ($start == "872") $depart = "FLOOR CARE";
else if ($start == "874") $depart = "LARGE ELECTRICAL";
else if ($start == "881") $depart = "PERSONAL CARE";
else $depart = "UNKNOWN";
$uninumver = $baseid."00".$row[Branch];
$string = $uninumver.",".$row[OrderNumber].",".$point.",$depart,".$row[pdsref].",".$row[QtyDelivered].",$odate,".$row[Product]."\r\n";
if (strlen($string) > 1) fwrite($myFile, $string, strlen($string));
}
fclose($myFile);
$name = "APPLIORDER.CSV";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$name);
header("Content-Description: File Transfer");
@readfile($filename);
?>
Output text file:
(see attached gif file)