alles zwischen <a> und </a> ausgeben
Martina
- php
0 Andreas Korthaus0 Martina0 Christian
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
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
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
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
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
Hi!
if(eregi("<a (^>)*>(^(</a>))*</a>", $regs)
gibt es leider schon einen Fehler ... ???
"Parse error: parse error, unexpected '{'"
Oben fehlt ein ")"
Grüße
Andreas