phpbar.de logo

Mailinglisten-Archive

[php] Regexp soll HTML-Elemente ausschließen

[php] Regexp soll HTML-Elemente ausschließen

Yannik Hampe yannikh at gmail.com
Die Okt 3 19:13:48 CEST 2006



Simon Bienlein wrote:
> Hallo zusammen,
> 
> ich möchte Akronyme, Abkürzungen und Sprachwechsel im HTML-Code
> automatisch auszeichnen. Das Skript, dass ihr unter
> www.linux-fuer-blinde.de/misc/auszeichnungen.txt
> findet, findet schon einzelne Worte und zeichnet diese aus. Allerdings
> ersetzt es auch in den Attributen href und alt.
> 
> Eine mögliche Lösung wäre, dass das Skript nicht zwischen < und >
> ersetzt und außerdem die Elemente abbr, acronym, code, pre, textarea
> komplett ausshließt.
Also mir fällt dazu nur Zeichenweise durchgehen ein.
Also for-Schleife über den String und dann in diese Schleife (angenommen
$c ist der jewals aktuelle char):
$ergebnis ='';
$tmp ='';
$intags =false;
$wortesuch =Array('tag1','anderer-tag','abc');
$worteersatz =Array('ersatz für tag 1','erstaz für 2','def');
[Schleifenanweisung]
{
  if ($intags) //wenn intags, dann einfach aktuelles Zeichen ignorieren.
  {
    if ($c =='>') $intags =false; //Es sei denn, es eendet intags
    continue;
  }
  if ($c ==[Whitespace])
  {
    $ergebnis .=str_replace($wortesuch,$worteersatz,$tmp).$c;
    $tmp ='';
  }
  elseif ($c =='<') $intags =true;
  else $tmp .=$c;
}
Und dann steht das Ergebnis in $ergebnis.
Ist aber wahrscheinlich fürchterlich ineffizient.
> 
> Für eure Hilfe wäre ich sehr dankbar.
> 
> Schöne Grüße
> von Simon

Yannik

php::bar PHP Wiki   -   Listenarchive