Perry Mason: Dateinamen aus Link ermitteln

Hallo,

der folgende Befehl liefert mir beispielsweise den Inhalt eines pdf- oder rte-Dokuments:

$inhalt = file_get_contents("http://www.irgendwas.com/php/index.php?download&agt=763&db=0");

$inhalt kann ich anschließend in einer Datei speichern.

Das Problem ist nur, dass ich zwar wunderbar die Daten bekomme, aber nicht den ursprünglichen Dateinamen. Daher weiss ich nicht einmal, ob es sich um pdf oder rte oder sonstetwas handelt.

Wie kann ich den Dateinamen ermitteln?

  1. Hi!

    $inhalt = file_get_contents("http://www.irgendwas.com/php/index.php?download&agt=763&db=0");

    Bitte für Beispiele die dafür vorgesehenen Domainnamen verwenden und nicht irgendwelche, die unter Umständen jemandem gehören.

    Wie kann ich den Dateinamen ermitteln?

    Wenn der Server so nett ist, ihn in irgendeiner der HTTP-Headerzeilen mitzuteilen, ...

    Ein kurzes Googeln jedenfalls nach "php file_get_contents http-header" lieferte die Variable $http_response_header.

    Lo!

    1. Vielen Dank!

      Funktioniert!

      Mit Google-Suche "php dateiname aus url" kam ich halt nicht sehr weit!

      1. Hi!

        Mit Google-Suche "php dateiname aus url" kam ich halt nicht sehr weit!

        Akzeptiert, dir fehlte das Stichwort HTTP-Header. Das hatte ich in meinen Überlegungen unterschlagen.

        Lo!

  2. @@Perry Mason:

    nuqneH

    Das Problem ist nur, dass ich zwar wunderbar die Daten bekomme, aber nicht den ursprünglichen Dateinamen.
    Wie kann ich den Dateinamen ermitteln?

    Gar nicht. Server liefern keine Dateien aus, sondern Ressourcen.

    Daher weiss ich nicht einmal, ob es sich um pdf oder rte oder sonstetwas handelt.

    Der MIME-Type sollte im HTTP-Header stehen.

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a