HTML-Datei ent-linken
mir
- php
tach!
zuerst wird bei meinem script eine html datei in einen string geladen;
danach sollen alle links, also alles, was zwischen <a> und </a> steht entfernt werden.
das soll dann in einen neuen string rein, welcher dann ausgelesen wird.
wie bekommt man das so hin, dass die links entfernt werden?
dange
tach!
$s = "eingelesene Datai";
$s = explode("<a",$s);
function link($v,$k)
{
$v = explode("</a>",$v);
$link_seite.="<a".$v[0]."</a><br>";
$reiner_txt.=$v[1];
}
array_walk($s,"link");
print $link_seite;
print $reiner_txt;
Gruß aus Berlin!
eddi
hab das script nun so in ne schleife (!) eingebunden.
$datei_inhalt = explode("<a",$datei_inhalt);
function links($v,$k)
{
$v = explode("</a>",$v);
$link_seite.="<a".$v[0]."</a><br>";
$reiner_txt.=$v[1];
}
array_walk($datei_inhalt,"link");
print $link_seite;
print $reiner_txt;
deshalb gibts nun den fehler:
Fatal error: Cannot redeclare links() (previously declared in C:\wampp2\htdocs\3GNet\suche\suche\suche.php:41) in C:\wampp2\htdocs\3GNet\suche\suche\suche.php on line 41
hab das script jetz aus der funktion ausgebaut und in den code direkt eingebunden. dabei entfallen schonmal die initialisierungsfehler.
aber nun is wohl noch was falsch dran:
die datei mit so nem inhalt wird so ausgegeben...
inhalt:
ok gdgxde bv b vlifszr
frzf
zuozuo#
ho <a href="test">recht!</a>
huoiu
=script=>
huoiu
was is mit dem zeugs, das vor dem link steht?
Huhu
das mit dem explode ist ja durchaus kreativ, aber die
Aufgabenstellung schreit geradezu nach einem regulären Ausdruck.
Das könnte dann z.B. so aussehen:
<?php
$content = <<< EOT
Viel Text
<a href="http://www.huhu.com">Klick hier</a>
noch mehr Text
<a href=
"http://www.huhu.com">Oder auch hier</a>
und immer noch mehr Text.
EOT;
$plaincontent = preg_replace ('#<a.*>(.*)</a>#sUi','\1', $content);
echo $plaincontent;
?>
Ein guter Ausgangspunkt um sich schlau zu lesen ist das hier
http://www.php.net/manual/en/ref.pcre.php
Viele Grüße
lulu