phpbar.de logo

Mailinglisten-Archive

[php] BIBTEX Datei erzeugen

[php] BIBTEX Datei erzeugen

Jan Schwenke jantxu at web.de
Mon Dez 18 13:48:09 CET 2006


Hallo Niels,

vielen Dank erstmal für die Antwort. Eine Sache ist mir allerdings noch 
unklar: Was genau meinst Du mit "sicher on-the-fly" erzeugen?
Mein jetziger Code sieht so aus:

<?php
$text = 'BIBTEX Einträge aus der Datenbank...';
$datei = $daten["title"].'.bib';
$handle = fopen($datei, "w");
fwrite($handle, $text);
fclose($handle);
?>

Die erzeugte Datei bleibt hier allerdings dauerhaft bestehen. Lieber 
wäre mir eine temporäre Datei. Allerdings habe ich mit den 
entsprechenden Funktionen (tempnam() usw.) noch keine Erfahrung, meine 
ersten Versuche habe somit auch nicht geklappt...
Wie muss ich meinen Code ändern/erweitern?

Viele Grüße, Jan

Niels Jäckel schrieb:
> Hallo Jan,
>
>   
>> ich möchte mit php eine Bibtex-Datei erzeugen. Dazu sollen Daten aus 
>> einer MySQL-Datenbank in eine temporäre Datei geschrieben werden. Diese 
>> soll an den Browser zum Download geschickt werden. Danach soll die Datei 
>> wieder gelöscht werden.
>>
>> Wie genau funktioniert sowas?
>>     
>
> Ich gebe dir mal den (allgemeinen) groben Ablauf - ohne auf etwaige (mir 
> nicht bekannte) Tücken mit Bibtex-Files einzugehen:
>
>    - Du erzeugst die Datei sicher on-the-fly. D.h. diese Datei liegt zu
>      keinem Zeitpunkt im Dateisystem des Servers - muss also am Ende
>      auch nicht gelöscht werden.
>    - Es sei denn du hast viele Zugriffe, dann wäre ein Caching und damit
>      die Ablage im Dateisystem wieder sinnvoll.
>
>    1. Abfrage der Datenbank
>    2. Zusammenbauen der Datei in EINEN String.
>       (sicherlich mit foreach(...) über allen Datensätzen)
>
>    3. Korrekte Headers an den Client senden
>       header('Content-Type: x-application/x-octet-stream');
>       header('Content-Disposition: attachment; filename="datei.bib"');
>       header('Content-Transfer-Encoding: binary');
>       header('Content-Length: '. strlen($content));
>
>    4. Content senden
>       (echo $content)
>
>
>
> Grüße,
> Niels
>   


php::bar PHP Wiki   -   Listenarchive