Von Teil1 bis Teil2 bestimmten Teil einer Datei lesen und weiter ...

-GS-Master

Erfahrenes Mitglied
Hallo ich glaube es wurde so etwas ähnliches schon mal bearbeitet
Bin mir nicht ganz sicher und weiß auch nicht wie sowas heißt -.-

Mein Problem ist folgendes:
Ich habe eine Datei die ich auslesen lasse. Diese Datei möchte ich jetzt in Abschnitte aufteilen und daher muss ich diese Datei dann Teilen und zwar jeweils von einem bestimmten Teils der Datei bis zum anderen und diese bis die ganze Datei durchlaufen ist.

Ich würde erstmal durch eine Whileschleife das ganze in einen Array aufteilen von
"Part_01C75135.DA8515E0" bis "------=_Next"
Davor müsste ich jedoch prüfen ob dies möchlich ist. Dies denke ich zumindest ...

Nun ja nach dem "aufteilen" müsste ich nur noch "heraus finden" :
- Den Dateinamen
- Die Encode form (ascii, utf-8 etc.)

Und zum grönenden Abschluss müsste ich nur noch diesen Teil jeden abschnittes entfernen:

Part_01C75135.DA8515E0
Content-Location: file:///C:/D0C89D18/Dateiname1
Content-Transfer-Encoding: ?
Content-Type: text/?;

und

------=_Next


Hier das Beispiel:
Die Datei hat ein "einfaches" muster. Ist also Wie folgt aufgebaut:
PHP:
------=_NextPart_01C75135.DA8515E0
Content-Location: file:///C:/D0C89D18/Dateiname1
Content-Transfer-Encoding: ?
Content-Type: text/?;

// hier kommt der Inhalt der ersten "Unter-Datei"

------=_NextPart_01C75135.DA8515E0
Content-Location: file:///C:/D0C89D18/Dateiname2
Content-Transfer-Encoding:
Content-Type: text/html;

// hier kommt der Inhalt der zweiten "Unter-Datei"

------=_NextPart_01C75135.DA8515E0--

In diesem Beispiel sind nun 2 "Unter-Dateien" enthalten.
Beendet wird die ganze Datei dann eben mit diesen tollen Zeichen nach eröffnung eines neuen Parts (Zeichen: --)
 
Probier mal Folgendes:
PHP:
$multiparts = preg_split('/\x0D\x0A--'.$boundary.'(?(?!--)\x0D\x0A)/', $content);
foreach( $multiparts as $multipart ) {
	list($multipartHeader, $multipartContent) = explode("\r\n\r\n", $multipart);
	// …
}
In der $multipartHeader-Variable befindet sich die Header-Informationen der Teilnachricht und in der $multipartContent-Variable der Inhalt der Teilnachricht selbst. Den Header kannst du jetzt noch in die Header-Felder zerlegen und somit den Teilnachrichtinhalt in das gewünschte Format bringen.
 
Hat mir etwas geholfen. Habe das ganze jetzt wie folgt gelöst.

PHP:
// Inhalt ... 

$teile = explode("------=_NextPart_01C75135.DA8515E0--", $boundary);
$teile = explode("------=_NextPart_01C75135.DA8515E0", $teile[0]);
$anzahl = count($teile); 
for($index = 1; $index < $anzahl; $index++) 
{ 
echo $index;
echo $teile[$index];
echo "<br />";
}


Werde dann mal fleisig weiter Coden und schaun ob ein Projekt so klabt wie ich mir das vorstelle ^^
 
Zuletzt bearbeitet:
Zurück