PHP

Entfernte Datein lesen und in ein Verzeichnis speichern mit PHP

Innerhalb einer Webanwendung mit PHP beispielsweise in Bild herunterzuladen, um es auf dem Server zu speichern, ist leichter als man vielleicht denkt.
Es reicht bereits:

file_put_contents("Ziel Pfad", file_get_contents("Remote Url"));

Ziel Pfad ergibt den späteren Pfad auf dem Server, Remote URL entspricht der Datei die man herunterladen will. Will man den Dateinamen z.B. beibehalten, oder gar die entferne Ordnerstruktur übernehmen ist das mit einem kleinen RegEx auch nicht weiter schwer.

Ordner ermitteln:

   preg_match("/https?:\/\/.*\/(.*)/.*","Remote Url",$erg);

Mkdir Rekursiv aufrufen:

  @mkdir($erg[1],0770,true);

Und schon sind die Zielordner für den Download angelegt. Das @ vor mkdir unterdrückt übrigens Fehlermeldungen. Vor allem solche, das sein Ordner schon existiert.

Zum Abschluss können wir uns dann aber auch noch die Angabe des Ziel Pfades in der file_put_contents Funktion erleichtern, in dem wir ihn auch automatisch ermitteln.

Am einfachsten erweitert man das RegEx zum Ordner ermitteln um eine weiters Klammern paar:

   preg_match("/https?:\/\/.*\/(.*)/(.*)","Remote Url",$erg);

anschließen steht im Array $erg im Index 1 der Pfad, im Index 2 der Dateinamen. Das kann man als Parameter dann wieder zusammenhängen:

file_put_contents($erg[1]+"/"+$erg[2], file_get_contents("Remote Url"));

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.