Datei teilen _nach_ <BODY ..... >
Steffi
- php
Hallo,
ich wage es mal, hier als Frau eine Frage stellen... :-)
Ich habe schon alle String-Funktionen bei SelfPHP durch, aber nichts gefunden...
Ich lese so eine Datei in eine Variable:
$fp = fopen ($datei, "r");
$str = fread ($fp, filesize ($datei));
fclose ($fp);
$daten = $str;
Jetzt muss ich die Variable "daten" in zwei Variablen teilen:
Der erste Teil soll folgendes beinhalten:
<HTML>
<HEAD>
.
.
<BODY [unterschiedliche Daten] >
Der zweite Teile soll den Rest enthalten.
Das Problem ist, dass <BODY ..... > in dem ersten Teil sein soll, und ich keine Markierungen (Kennzeichnung durch Kommmentare) in den Dateien einfügen kann. Mit Markierungen wäre das ja kein Problem.
Könnte mir da jemand helfen?
Danke!
Steffi
Hi,
Das Problem ist, dass <BODY ..... > in dem ersten Teil sein soll,
ich sehe kein Problem. Der erste Teil endet nach dem ersten ">" nach "<BODY".
Cheatah
Hello,
Hi,
Das Problem ist, dass <BODY ..... > in dem ersten Teil sein soll,
ich sehe kein Problem. Der erste Teil endet nach dem ersten ">" nach "<BODY".
und dazu passt dann http://de3.php.net/manual/en/function.strpos.php
Suchen musst Du sicher nach "<body " in strtolower($dateiinhalt) und Dir die Position merken. und dann suchst Du nach ">" ab der gemerkten Position, so wie Cheatah das schon beschreiben hat.
Außerdem solltest Du vielleicht noch die Anzahl der Vorkommen von "<body " zählen lassen. Es muss ja genau eins sein. Aber sicher ist sicher.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
So könnte ich nach zwei Durchläufen die Position des richtigen ">" rausfinden.
Nur wie teile ich das jetzt? Mit split oder explode kann ich keinen "Startwert" für die Suche festlegen.
Steffi
Hello,
So könnte ich nach zwei Durchläufen die Position des richtigen ">" rausfinden.
Nur wie teile ich das jetzt? Mit split oder explode kann ich keinen "Startwert" für die Suche festlegen.
http://de3.php.net/manual/en/function.substr.php
Schau Dir die anderen Stringfunktionen auch mal an.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Danke!
Hier meine Lösung...
$suche = '<body';
$pos = strpos(strtolower($daten), $suche);
$suche = '>';
$trenn = strpos(strtolower($daten), $suche, $pos);
$trenn++;
$head = substr($daten, 0, $trenn);
Danke für die Hilfe
Hello,
Danke für Deine Rückmeldung. Das vergessen leider die meisten.
Hier meine Lösung...
$suche = '<body';
$pos = strpos(strtolower($daten), $suche);$suche = '>';
$trenn = strpos(strtolower($daten), $suche, $pos);
$trenn++;
$head = substr($daten, 0, $trenn);
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Das Problem ist, dass <BODY ..... > in dem ersten Teil sein soll,
ich sehe kein Problem. Der erste Teil endet nach dem ersten ">" nach "<BODY".
<body title="guck mal da ->">
SCNR ;-)
cu,
Andreas
Hello,
Das Problem ist, dass <BODY ..... > in dem ersten Teil sein soll,
ich sehe kein Problem. Der erste Teil endet nach dem ersten ">" nach "<BODY".<body title="guck mal da ->">
SCNR ;-)
Und das von DIR? *gg*
<body title="guck mal diesen coolen body da -->">
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
<body title="guck mal da ->">
SCNR ;-)
Und das von DIR? *gg*
Ja, warum nicht?
Es gibt keinen Grund, das > hier als Entity zu schreiben.
cu,
Andreas
Ja so ähnlich hatte ich mir das auch gedacht.
Zwei mal mit "strstr($text,$daten)" durchgehen, 1. Mal mit $text="<BODY" das zwei Mal mit $text=">". Dann bekommt ich als Ausgabe alles nach dem (inklusive) ">" zurück. Aber den ersten Teil habe ich damit noch nicht, und der ist eigentlich der wichtige Teil.
Wenn ich das "umdrehe" mittels "strrev", habe ich noch das "<BODY" drin (nach nochmaligen "strrev")...
Steffi
Hi,
Zwei mal mit "strstr($text,$daten)" durchgehen, 1. Mal mit $text="<BODY" das zwei Mal mit $text=">". Dann bekommt ich als Ausgabe alles nach dem (inklusive) ">" zurück.
Du musst zunächst die Position ermitteln. Anschließend nutzt Du diese, um zwei Teilstrings zu extrahieren.
Cheatah