Ankündigung

Einklappen
Keine Ankündigung bisher.

zip downloaden, entpacken und nutzen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zip downloaden, entpacken und nutzen?

    Hallo,

    ich möchte gern ne zip-Datei, die online verfügbar ist, entpacken und später dann abspeichern, sodass ich die verwenden kann mit fopen.

    Alles in einem geht natürlich nicht. Daher mein Versuch:

    PHP-Code:
    //Datei downloaden
    $url "http://www.domain.de/file.zip";
    $file = ??
    if (
    function_exists('zip_open')) {
            
    $zip zip_open($file);
            
    $zip_entry zip_read($zip);
            
    $contents zip_entry_read($zip_entry);
            
    zip_entry_close($zip_entry);
            
    zip_close($zip);
            echo 
    "Inhalt: $contents";
        }
    //Datei speichern
    $fp fopen('name.endung''a');
    fwrite($fp$contents);
    fclose $fp); 
    Also lesen und speichern sollte ja laufen, oder wie würdet ihr da vorgehen? Speziell auch der Download.

    Danke

  • #2
    Zunächst mal grundlegendes:
    PHP-Code:
    $url http://www.domain.de/file.zip // Hier fehlen Quotes!
    $file = ?? // wirst Du wohl noch angeben, denke ich?!
    if (function_exists('zip_open')) {
            
    $zip zip_open("$file"); // wozu hier die DoubleQuotes?
            
    ...
        }
    //Datei speichern
    $fp fopen('name.endung''a'); // Willst Du speichern oder anhängen ???
    fwrite($fp"$contents"); // Da fehlt ein Komma und die DoubleQuotes sind wieder mal unnötig! 
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      1. Dein Code liest maximal einen Eintrag aus
      2. benutz lieber die Klasse ZipArchive falls verfügbar
      3. Zum Download: probier doch einfahc mal ob zip_open mit dem HTTP Wrapper klar kommt, falls nicht ziehst du dir die Datei eben via fopen() oder einer anderen Dateisystemfunktion die den HTTP Wrapper unterstützt. Mehr dazu findest du im Handbuch. Dabei solltest du darauf achten das allow_url_fopen in der php.ini aktiviert ist.
      4. Rest wurde gesagt
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        Jep sorry für die kleinen Fehler oben drin, hab das natürlich mal angepasst. Und dass er mir nur einen Eintrag liest ist auch klar...allerdings hat das zip-Archiv auch nur eine Datei, deswegen macht das kein Problem.

        Und genau dieses $file = ??? ist ja auch mein Problem. Denn wie lade ich mir die zip-Datei jetzt runter, sodass ich die an zip_open übergeben kann?

        Kommentar


        • #5
          Zitat von BartTheDevil89 Beitrag anzeigen
          Und dass er mir nur einen Eintrag liest ist auch klar...allerdings hat das zip-Archiv auch nur eine Datei, deswegen macht das kein Problem.

          Und genau dieses $file = ??? ist ja auch mein Problem. Denn wie lade ich mir die zip-Datei jetzt runter, sodass ich die an zip_open übergeben kann?
          Du hast meinen Beitrag offenbar gelesen (Zitat, erster Absatz), die Antwort auf deine Frage (Zitat, zweiter Absatz) findest du auch dort.
          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

          Kommentar


          • #6
            Ahso ok...du meinst sowas hier?

            PHP-Code:
            $fp=fopen("http://www.domain.de/datei.zip"'r');
            $zip zip_open(fread $fp1000000)); 
            Oder was meinst du?

            Kommentar


            • #7
              Zitat von BartTheDevil89 Beitrag anzeigen
              Und genau dieses $file = ??? ist ja auch mein Problem. Denn wie lade ich mir die zip-Datei jetzt runter, sodass ich die an zip_open übergeben kann?
              Nicht herunter laden, hochladen... dein PHP Code wird auf dem Server ausgeführt, ergo musst du das ZIP auf den Server hochladen, auf dem das Script werkelt...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                @Istegelitz: Nein er wird auf seinem Server eine Zip-Datei von einem anderen Server downloaden wollen.

                @BartTheDevil89: Ja z.B., wenn eben von DarkGuardian besagtes allow_url_fopen korrekt eingestellt ist.
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Zitat von BartTheDevil89 Beitrag anzeigen
                  Ahso ok...du meinst sowas hier?

                  PHP-Code:
                  $fp=fopen("http://www.domain.de/datei.zip"'r');
                  $zip zip_open(fread $fp1000000)); 
                  Oder was meinst du?
                  Nein. zip_open() erwartet einen Dateinamen, keine Dateidaten.

                  Ergo speicher die Daten von fopen() vorher irgendwo und gib zip_open() den Pfad... eine Kombination aus file_get_contents()/file_put_contents() sollte es übrigens auch tun.
                  "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                  Kommentar

                  Lädt...
                  X