Reguläre Ausdrücke
Rainer TS
- php
Hallo,
leider bin ich mit regulären Ausdrücken nicht so fit, und komme daher bei folgendem nicht weiter:
ich möchte in beliebigen Internetseiten jedes Wort anklickbar machen sprich also jedes Wort mit einem Link versehen.
Ich lese die Seite also als String ein:
$content=@implode("",@file($url));
Nun müsste im String $content quasi jedes einzelne Wort welches kein HTML-Tag ist mit einem Ancher-Tag versehen werden.
Ich bekomm es leider nur hin HTML-Tags zu finden: /<[?>]*?>/,aber keine nicht-HTML-Tags.
Außerdem hab ich noch nicht rausbekommen, wie man beim Ersetzen das zu ersetzende Wort abgeändert (also mit Anchor-Tag) wieder für sich selbst einsetzt - bzw. wie kann man direkt beim Ersetzen auf das zu ersetzende Wort zugreifen.
Wenn mir jemand da mal ein bisschen helfen könnte wär super...
gruß, rainer
leider bin ich mit regulären Ausdrücken nicht so fit, und komme daher bei folgendem nicht weiter:
das bin ich genauso wenig, habe mich um das zeug bisher immer rumgedrückt. aber ich hoffe meine idee taugt zumindest als denkanstoß.
Ich bekomm es leider nur hin HTML-Tags zu finden: /<[?>]*?>/,aber keine nicht-HTML-Tags.
ich kenne jetzt die komplexität der inhalte deiner seiten nicht, aber wie wäre es denn im ersten schritt mal die wörter durch die inverse der html-tags zu bestimmen, sprich alles was nicht die kriterien für die html-tags erfüllt als wort zu identifizieren?
hih,
matthias
Hi Rainer
ich möchte in beliebigen Internetseiten jedes Wort anklickbar machen sprich also jedes Wort mit einem Link versehen.
Ich lese die Seite also als String ein:
$content=@implode("",@file($url));
Ich bekomm es leider nur hin HTML-Tags zu finden: /<[?>]*?>/,aber keine nicht-HTML-Tags.
ein Ansatz wäre zB. vorher alle HTML-tags zu entfernen
das geht mit:
http://de2.php.net/manual/de/function.strip-tags.php
danach hast Du nur noch Leerzeichen und Text, jetzt kannst Du mit einem geeigneten Trennzeichen schon fast mit explode und einer Schleife arbeiten...
Außerdem hab ich noch nicht rausbekommen, wie man beim Ersetzen das zu ersetzende Wort abgeändert (also mit Anchor-Tag) wieder für sich selbst einsetzt - bzw. wie kann man direkt beim Ersetzen auf das zu ersetzende Wort zugreifen.
schau mal hier, damit kannst Du auf das zu ersetzende Wort zugreifen
http://de2.php.net/manual/de/function.preg-replace-callback.php
ciao
romy