2010-12-03 7 views
0

Ich bin ein Skript einrichten, so dass ich eine URL zu einer Webseite eingeben kann und das Skript wget die Datei. Die meisten Dateien werden jedoch im Format *.rar vorliegen. Kann ich den Dateinamen trotzdem an den unrar Befehl übergeben, um die über wget heruntergeladenen Dateien zu entpacken?Get filename von wget in php

Vielen, vielen Dank im Voraus!

EDIT Ich dachte über explode() Funktion von PHP mit der URL durch die Schrägstriche (/) zu brechen, aber das scheint ein wenig Hack-y.

Antwort

1

@Wyzard gibt die beste Antwort. Wenn es eine Bibliothek gibt, die Ihr Problem löst, verwenden Sie sie anstelle eines externen Prozesses. Es ist sicherer und es ist die saubere Lösung. PHP's cURL und RAR sind gut, verwenden Sie sie. Wenn Sie wget und unrar verwenden müssen, gibt @Rik eine gute Antwort. wget 's -O filename Option speichert die Datei als filename, so dass Sie es nicht erarbeiten müssen. Ich würde lieber wget 's Ausgang direkt an unrar obwohl, mit wget -q -O - http://www.example.com | unrar.

@ Byrons Antwort ist hilfreich, aber Sie sollten es wirklich nicht hier verwenden müssen. Es ist jedoch besser als explode() als Ihre Erwähnungen zu verwenden.

+0

Sie erhalten das Häkchen, um mich daran zu erinnern, dass ich die Ausgabe an unrar übergeben könnte. ;) – esqew

2

Anstatt externe Programme zum Herunterladen und Extrahieren der Datei zu verwenden, sollten Sie die eigenen Erweiterungen cURL und RAR verwenden. Sie können die tmpfile()-Funktion verwenden, um eine temporäre Datei zu erstellen, sie als Wert der Option CURLOPT_FILE zu verwenden, damit cURL die heruntergeladene Datei dort speichert, und dann diese Datei mit den RAR-Funktionen öffnen, um den Inhalt zu extrahieren.

0

wget -O filename URL && unrar filename