Text hervorhebung ähn. wie bei google

CasparJones

Grünschnabel
Hallo Profis,

ich habe mal wieder eine kleine Frage.
Ich suche in einem Text mal wieder nach wörtern, hab auch alles soweit hinbekommen nur möchte ich jetzt gerne dem Text die gefundenen wörter hervorheben wie in google cache.

Das bekomme ich auch hin, nämlich mit str_replace in nem array wo die wörter sind und im anderen array in was er die ersetzen soll.
Bsp:
$von[0]="Hallo";
$von[1]="Welt";
$in[0]="<b>Hallo</b>";
$in[1]="<b>Welt</b>";

Problem ist jetzt nur das mir das auch HTML Code zerören würde, wenn z.B. nach < gesucht wird. Ich könnte jetzt alle diese Fälle abfangen, aber vieleicht gibt es ja eine einfachere möglichkeit unter PHP die HTML Tags zu 'schützen'.

Kennt da vieleicht einer eine möglichkeit?
Danke schön mal im Vorraus.
Greetz CaS
 
hmmm... die html befehle sollen schon ähm erhalten bleiben.
aber ich werd es mal ausprobieren mit htmlspecialchars etwas rumzuarbeiten.

Eigentlich müsste sowas doch oft gemacht werden... *grübel*
schade das es im befehl str_replace keine opition gibt das er HTML befehle nicht replacen soll :rolleyes: aber php soll uns ja nicht alle programmierarbeit abnehmen :-)

Greetz und Danke
Euer Caspar
 
Warum deklarierst du denn nicht einfach < und > als ungültige Suchanfragen und schützt damit deine Tags? Für mich jedenfalls ergibt eine Suche nach < oder > jedenfalls keinen SInn.
Ne andere Möglichkeit – falls du eine Suchmöglichkeit nach diesen Zeichen wirklich für erforderlich hältst – wäre einfach nach &lt; oder &gt; suchen zu lassen!?
Wie gesagt, ich sehe darin keinen Sinn...
 
Das dürfte etwas komplizierter werden:(

Ich nehme mal an, bei dem Text handelt es sich um eine komplette Webseite etc.

Dann hast du nicht nur ein Problem mit den Klammern, sondern auch mit den Tags ansich...man könnte ja nach span, p, body etc. suchen ...das würde diese Tags finden...und ersetzen.
Von in der Seite beinhaltetem CSS-und Javascript-Code ganz zu schwweigen.

Ich würd da wahrscheinlich erstmal versuchen, mit regulären Ausdrücken das ganze Dokument auseinanderzunehmen...damit ich die ersetzbaren Teile von den unantastbaren unterscheiden kann.

Mit Javascript geht das beim IE recht unkompliziert...ich schätze aber, das wird dir nicht genügen.
 
Hallo,

@fatalus: ja das scheint wirklich nicht so einfach zu sein *seufz*
Naja ich werd mich mal an einen RegExp ranmachen.

ganze Website eigentlich nur sowas wie eine E-Mail die über HTML formatiert wurde und in der eine Volltextsuche eingebaut wurde. Die Gefundenen Wörter werden dann in dem E-Mail Text hervorgehoben... Nur man kann ja nie wiessen wonach der DAU so sucht und wenn er gerade eine dieser charakter sucht gibs ärger...

*seufz* Naja aber danke für eure Hilfe schonmal, werd mal schauen wie ich das gebaut bekomme...

Greetz Euer Caspar
 
Zurück