dedlfix: HTML durch PHP downloaden

Beitrag lesen

Hi!

Und ja, die Formalitäten sind diskussionswürdig, weil eine recht hohe Wahrscheinlichkeit besteht, dass genau darin dein Problem liegt - dass du genauso schludrig, wie du mit den korrekten Begrifflichkeiten umgehst, auch „programmierst“.

Ergänzend: Die korrekten Begriffe zu verwenden, heißt verstanden zu haben, wofür genau sie stehen und wodurch sie sich von anderen Begriffen unterscheiden, beziehungsweise die Dinge, die damit benannt werden. Das ist essenziell für eine effektive und effiziente Kommunikation.

Vielleicht zum Verständnis: Das was der Weberver ausliefert, ist eine Ressource. Das kann eine Datei im Dateisystem sein, aber auch die von einem Script erzeugte Ausgabe. Beiden gemein ist, dass der Client/Browser für eine solche Ressource in den HTTP-Headern den Content-Type genannt bekommt. Den kann einerseits der Webserver aus der Endung einer Datei oder einem anderen Merkmal ermitteln. Andererseits kann auch PHP den Content-Type für die vom Script erzeugte Ausgabe dem Webserver mitteilen, auf dass er den zusammen mit der Ausgabe an den Client sendet.

Ob und wenn ja welchen Content-Type eine Datei (wie beispielsweise das PHP-Script) hat, ist nur für das Betriebssystem interessant, das die Datei öffnen muss. Üblicherwiese spielt da ein Content-Type eine untergeordnete bis gar keine Rolle. Da ist dann lediglich über die Dateiendung eine Verknüpfung zu verarbeitenden Programmen konfiguriert. Die Programme kennen ihre eigenen Wege, sich um den Inhalt kümmern. Ihnen jedenfalls steht kein HTTP-Header mit einer Content-Type-Information zur Verfügung.

Zusammenfassend: Der Content-Type ist für die Ausgabe interessant, nicht für die Datei des Scripts, das sie erzeugt.

Was das eigentliche Problem ist, kann ich nicht nachvollziehen. Das Stück Code im OP scheint mir soweit in Ordnung zu sein. Der nicht offiziell definierte Name für den Content-Type stellt üblicherweise kein Problem dar. Die Browser bieten eigentlich daraufhin die Ressource zum Download an. application/octet-stream sollte das gleiche bewirken, nur dass der Name standardisiert ist.

Lo!