String durchsuchen unabhängig von Groß und Kleinschreibung

liquidbeats

Erfahrenes Mitglied
Morgen
Ich stehe gerade etwas auf dem Schlauch.

Und zwar geht es darum einen String nach vorkommen zu durchsuchen und die entsprechenden Wörter die in dem String gefunden werden abzuändern.

Beispielsweise so wie in dem Beispielscript
PHP:
  $text = strtolower($text);
 $q=strtolower($q);
 $text = ereg_replace($q,"<font color=red><b>".$q."</b></font>",$text);
 echo $text;

Das Funktioniert auch, Leider muss ich alle texte in kleingeschriebenen halten um auch wirklich alles zu treffen was in $q enthalten ist.

Leider finde ich jetzt in der PHP hilfe nicht das was mir hilft die Großund kleinschreibung beibehalten zu können und er Trotzdem alles Markiert welches mit dem suchwort Übereinstimmt (unabhängig von Goß und Kleinschreibung).

Währe super wenn man mir mal eben auf die Sprünge helfen könnte :)



Gruß
 
Probier mal Folgendes:
PHP:
<?php

	echo preg_replace('/('.quotemeta($q).')/i', '<span class="highlight red">\\1</span>', $string);

?>
 
Danke :)
Funktioniert leider nicht :(
Ne soweit ich weis gabs es eine Funktion welche es ermöglichte die Groß und Kleinschreibung zu Ignorieren;


Gruß
 
Was genau funktioniert denn nicht?

Anzumerken wäre, dass ich das vom W3C angelehnte HTML-Element font durch eine span-Äquivalenz mit Gestaltung durch CSS ersetzt habe.
 
Ja das habe ich ja gesehen.
Bis auf weiteres werde ich es ersteinmal noch mit dem Font tag erledigen bis alles Funktioniert ;)

Dannach werde ich da erst noch einen eigenen CSS Stil hinzufügen.

Es Funktioniert in soweit nicht das weder der gefundene Text rot und Fett dargestellt wird.


Meines Funktionierte leider auch nur in so weit das auch nur die vorkommen ersetzt wurden welche mit dem suchwort übereinstimmten (wohlbemerkt mit Großund kleinschreibung).

Das heißt sucht jemand nach Beschreibung wird das nicht dargestellt wenn es Beispielsweise
so Geschrieben wird
beschreibung
bESCHREIBUNG
ausser die Groß und kleinschreibung Passt Explizit auf die des Suchwortes
Beschreibung = Beschreibung

:rolleyes:

Gruß
 
Wo liegt das Problem, bei mir funktioniert es einwandfrei:
PHP:
<?php

	$string = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque vitae massa vel elit sodales ultricies. Nam sit amet justo. Vivamus arcu orci, cursus quis, tempus a, sollicitudin id, lectus. Donec egestas imperdiet elit. Nunc aliquam quam quis quam. Nunc lectus nunc, interdum sit amet, dictum sit amet, ultricies id, odio. Nunc mi. Sed metus sapien, tempus at, facilisis non, malesuada et, arcu. Cras id wisi. Vivamus nonummy varius mi. Praesent turpis magna, dapibus eu, accumsan ut, molestie sit amet, odio. Maecenas viverra hendrerit felis. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean sed est. Sed sodales sagittis eros. Morbi quis metus sit amet elit sagittis luctus. Quisque nisl. Vivamus id elit non risus euismod ultricies. Nunc ut leo. Pellentesque pharetra cursus sem.';
	$q = 'vi';
	echo preg_replace('/('.quotemeta($q).')/i', '<span class="highlight red">\\1</span>', $string);

?>
 
Mein Fehler habe vergessen das $q ein Array ist.
HZabs ausgebessert, jetzt klapt es.

Sieht zwar so aus
<span class="highlight red">Them</span>a <br> Test Text aus Beispiel
aber das bekomme ich auch noch hin, hoffe ich mal :)

Gruß

Danke :)
 
Nur als kleine Randbemerkung:


Die Funktion eregi_replace() ist mit ereg_replace() ident, unterscheidet aber nicht zwischen Groß- und Kleinschreibung.


MfG. xxenon
 
Zurück