RuD: in array suchen

Hi,
mein Problem ist:

ich habe ne fremde HTML-Seite, die ich einlesen will, aber nur bestimmte Teile davon brauch. Die Teile sind mit Kommentaren markiert.

also

<....nicht von intresse....>
<!--anfang-->
 INHALT
<!--ende-->

<...evtl.Zweischentext>

<!--anfang-->
 INHALT
<!--ende-->
.
.
.
<....nicht von intresse....>

leider ist die Datei aber nicht so schoen zeilenweise geschrieben, sondern nach einander. means:

<....nicht von intresse....>
<!--anfang-->INHALT<!--ende--><...evtl.Zweischentext><!--anfang-->INHALT<!--ende-->
.
.
.
<....nicht von intresse....>

$datei=file($url); ... so weit so gut
Jetzt hab ich ein array mit den Zeilen der Seite.
Aber wie loese ich den INHALT zwischen den Kommentaren raus ??

Danke schonmal im Voraus

RuD

  1. hallo,

    • endposition vom ersten <!--ende--> finden
    • anfangsposition vom zweiten <!--anfang--> finden
    • substring von 0 bis erstes ende
    • plus substring von zweiter anfang bis string länge

    und ferdsch.

    die entsprechenden funktionen findest du im php-manual unter Stringfunktionen.

  2. ich nochmal,

    hab vergessen, dass du vorher ein implode() machen musst um den Array in einen string umzuwandeln!

  3. NACHTRAG:

    Sorry was ich vergessen habe: ich weis nicht, wie lang die Teile, die ich nicht brauche sind, weder am Anfang, dazwischen oder am Ende.

    RuD

  4. Hi :)

    Ist der Inhalt den Du brauchst mit Anfang und Ende markiert? Also eindeutig?

    Wenn ja dann kannst Du mit einem Schleifenkonstrukt das ganze abarbeiten.

    Will heißen:

    Solange bis Seitenende nicht erreicht ist {

    if Anfang {
                    while Ende {
                         Text z.b Beispiel in ein Array kopieren
                    }
        }
    nächste Zeile
    }
    Gruß Time

  5. Hello,

    <....nicht von intresse....>
    <!--anfang-->
    INHALT
    <!--ende-->

    <...evtl.Zweischentext>

    <!--anfang-->
    INHALT
    <!--ende-->

    Gesamte Datei einlesen in eine Textvariable.

    $_parts = explode('<!--ende-->',$datei);

    $_elements = array();
      foreach($_parts as $raw_element)
      {
        $_elements[] = explode('<!--anfang-->',$raw_element;
      }

    Dann sollten in $_elements[$x][1] eigentlich immer die gesuchten Elemente drinstehen, vorausgesetzt, das Dateiformat war sauber.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau