Ik heb 2 scripts waarbij uit een database met gegevens van leden een bestand gemaakt wordt om rechtstreeks te downloaden. Hiervoor wordt beroep gedaan op:
header('Content-disposition: attachment; filename = boekje.rtf;');
ofwel op:
header('Content-disposition: attachment; filename = tblleden.csv');

In het laatste geval loopt alles naar wens. In het eerste geval echter wordt er aan het begin van het bestand een BOM of "Byte order marker" toegevoegd zodat het bestand niet meer herkend wordt als rtf-bestand door MS Word of Libre Office Writer. Ik zie niet waarom er in het laatste geval niets toegevoegd wordt aan het bestand en in het eerste wel. Ik heb al geprobeerd met een tweede header:
header('Content-type:application/rtf; charset=latin1;');
maar niets helpt.

Ik heb voorlopig het probleem opgelost door het rtf-bestand naar een tijdelijk bestand te schrijven via fwrite en dat bestand dan aan te bieden voor download. fwrite genereert geen BOM.

Iemand een idee?
PROBLEEM OPGELOST !

Ik moet mijn vorige uitleg corrigeren. Dank zij de grep instructie van Rob Doemaarwat heb ik inderdaad een bestand ontdekt met een BOM. Dit bestand, nog afkomstig van mijn voorganger, wordt door een include ingevoegd.

Rob, je had het dus bij het rechte eind! Bedankt!
Maarrr ... dit zou niet uit moeten maken. Sowieso raar dat dit een BOM op zou leveren, maar bij het wegschrijven of outputten naar de browser zou het resultaat dan hetzelfde moeten zijn (als ze tenminste beiden gebruik maken van dezelfde $file_start). Gokje mijnerzijds zou nu zijn dat er een BOM in dit betreffende PHP bestand ZAT, en dat die nu door het editen de BOM van de file verdwenen is.

Maar ala, het is opgelost :-)

Reageren