Martina: alles zwischen <a> und </a> ausgeben

Hallo,

wie kann ich mittels PHP alles Wörter zwischen den <a> und </a>-Tags in ein Array schreiben lassen?
Habe ein Plain-Text, der von meiner Labor-Software mit lauter Links herasgegeben wird - ich will aber nur das, was man von den Links sieht in ein Array schreiben.

So siehts z.B. aus:
<a href="www.123.de">text1</a>
<a href="www.1sd23.de">>text2</a>
<a href="www.1sd23.de">>text3</a>
<a href="www.1sd23.de">>text4</a>
<a href="www.1sd23.de">>text5</a>

Soll dann so aussehen:
array("text1","text2","text3","text4","text5");

Ich hoffe, dass mir ein paar kluge Männer helfen können ...
Martina

  1. Hi Martin!

    So siehts z.B. aus:
    <a href="www.123.de">text1</a>
    <a href="www.1sd23.de">>text2</a>
    <a href="www.1sd23.de">>text3</a>
    <a href="www.1sd23.de">>text4</a>
    <a href="www.1sd23.de">>text5</a>

    Soll dann so aussehen:
    array("text1","text2","text3","text4","text5");

    Sieht mir stark nach einem Fall für reguläre Ausdrücke aus, siehe:

    http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm
    http://www.php.net/manual/de/ref.pcre.php
    http://www.php.net/manual/de/function.preg-match-all.php
    http://php-faq.de/q/q-regexp-links-finden.html

    Hiermit sollte es gehen.

    Grüße
    Andreas

  2. Ich bins nochmal,

    das Problem damit zu lösen, einfach alle HTML-Tags zu löschen klappt leider nihct, weil es nicht nur links sondern auch noch Anmerkungen gibt, die ich natürlich nicht mir in den Array schreiben will ...

    Danke nochmal,

    Martina

  3. hi,

    if(eregi("<a (^>)*>(^(</a>))*</a>", $regs)
    {
    $array[count($array)] = $regs[1];
    }

    weiß nicht ob es klappt.
    soll so arbeiten: erst kommt <a
    dann darf alles außer > beliebig oft stehen: (^>)*
    dann kommt >
    dann kommt alles außer </a> beliebig oft.
    dann der endtag </a>

    in $regs werden die ausdrücke in den klammern gespeichert.

    versuchs auch mal mit $regs[2].

    Wie du jetzt alle <a>s in das array bekommst, musst du mal sehen, mit schleife oder so...

    Gruß
    christian

    1. Hi Christian,

      bei

      if(eregi("<a (^>)*>(^(</a>))*</a>", $regs)
      {
      $array[count($array)] = $regs[1];
      }

      gibt es leider schon einen Fehler ... ???

      "Parse error: parse error, unexpected '{'"

      Wär schön, wenn Du mir nochmal helfen kannst,

      Martina

      1. Hi!

        if(eregi("<a (^>)*>(^(</a>))*</a>", $regs)

        gibt es leider schon einen Fehler ... ???

        "Parse error: parse error, unexpected '{'"

        Oben fehlt ein ")"

        Grüße
        Andreas