Theo2312: BASE64 Decode

Hallo zusammen,

ich lade einen TXT Datei hoch und möchte den Inhalt mit base64_decode dekodieren.
Das klappt auch. Die Ausgabe gibt nahezu das gewünschte Ergebnis.

  
if(isset($_FILES['Datei']))  
    {  
    $file_name =$_FILES['Datei']['name'];  
    $file_tmp= $_FILES['Datei']['tmp_name'];  
    $data = file_get_contents($file_tmp);  
    $base64 = base64_decode($data);  
    ...  

1. Nun möchte ich aber, dass grundsätzlich die ersten 5 Zeilen der eingelesenen Datei ignoriert werden. Ist das möglich? Wenn nicht, wie kann ich den Inhalt der Datei (jede hochzuladende Datei hat das gleiche beginnende Muster)erst ab eiem bestimmten Startpunkt in die Variable legen?

2. Das Ergnis wird in eine Datei geschrieben. Das ganze ist aber nicht UTF-8 formatiert. Wie kann ich das anstellen?

Danke und Gruß, Theo

  1. hi,

    1. Nun möchte ich aber, dass grundsätzlich die ersten 5 Zeilen der eingelesenen Datei ignoriert werden. Ist das möglich?

    PHP hat Funktionen, eine Datei zeilenweise zu lesen.

    1. Das Ergnis wird in eine Datei geschrieben. Das ganze ist aber nicht UTF-8 formatiert. Wie kann ich das anstellen?

    Wenn das Ergebnis Base64 ist: Das hat mit Zeichenkodierung nichts zu tun.

    MfG

    1. Nun möchte ich aber, dass grundsätzlich die ersten 5 Zeilen der eingelesenen Datei ignoriert werden. Ist das möglich?

    Ja. Einlesen in ein Array: array=file(dateiname);
    Elemente wegschmeißen:  array=array_slice(array,ab wo, bis wo);
    String zusammenbauen: string=implode(Zeilentrenner, array);

    1. Das Ergnis wird in eine Datei geschrieben. Das ganze ist aber nicht UTF-8 formatiert. Wie kann ich das anstellen?

    Einfach reinschreiben? Oder willst Du die Daten neu in UTF-8 kodieren? iconv() oder recode() sind Deine Freunde.

    Jörg Reinholz

    1. Ja. Einlesen in ein Array: array=file(dateiname);
      Elemente wegschmeißen:  array=array_slice(array,ab wo, bis wo);
      String zusammenbauen: string=implode(Zeilentrenner, array);

      Ich habs wie folgt probiert:

        
          $file_content =$_FILES['Datei'];  
          $output = array_slice($file_content, 2);  
          $data = implode(",", $output);  
          echo $data;  
      
      

      Das bringt mir ein wirres Ergebnis. Müsste es so stimmen?

      Gruß und Danke

      1. Mahlzeit,

        Das bringt mir ein wirres Ergebnis. Müsste es so stimmen?

        Nein. $_FILES[NAME] ist ein Array, das nicht nur die Daten sondern auch noch einige andere Dinge enthält, wie Dateinamen usw.

        Lesen macht schlau ;)

        --
        42
        1. Nein. $_FILES[NAME] ist ein Array, das nicht nur die Daten sondern auch noch einige andere Dinge enthält, wie Dateinamen usw.

          Sorry, steh komplett auf dem Schlauch, es müsste dann doch so gehen:

            
           $file_content =$_FILES['Datei']['tmp_name'];  
              $output = array_slice($file_content, 1);  
              $data = implode(",", $output);  
              echo $data;  
          
          
          1. OK, danke, hat sich erledigt :-)

            1. Meine Herren!

              OK, danke, hat sich erledigt :-)

              Es ist immer hilfreich, wenn du die Lösung noch vorstellst. Die Threads werden hier ja teilweise archiviert und wenn der nächste Nutzer das selbe Problem hat wie du, wäre es doch sehr angenehm für ihn und uns und die Weltbevölgerung, wenn nicht alles von Null an neu aufgerollt werden müsste.

              --
              “All right, then, I'll go to hell.” – Huck Finn