str_replace nicht case sensitive...

sam

Erfahrenes Mitglied
moin,
ich hab mir eine funktion gebastelt, die
einen text einliest, dann in der db
nachschaut, ob bestimmte textteile
enthalten sind, und diese dann z.b. bunt
macht...also nix anderes als ne
highlight-funktion.
meine tabellenstruktur sieht so aus:
Code:
| id | word  |   description   |
--------------------------------
| 1  | world |  jaja, die welt |
die funktion sieht so aus:
PHP:
function Highlight($var) {
$db = new db;
$db->connect();
$db->query("SELECT * FROM highlight");
while($row = $db->fetch_array())
{
$word = $row[word];
$highlight = "<span style=\"color:red;\" title=\"$row[description]\">$row[word]</span>";
$var = str_replace($word,$highlight,$var);
echo $var;
}
und so teste ich das ganze:
PHP:
$text = "Hello World,world,WORLD,WoRlD";
echo Highlight($text);
das funktioniert schon ganz gut.
aber das ganze funktioniert leider nur
case sensitive d.h. wenn ich "WORLD"
statt "world" schreibe, passiert nix.
kann ich das ändern?

danke, mfg
sam
 
Ich weis nicht, ob dir das was bringt, aber hast du schon versucht die übergebene $var mit "strtolower" ins passende Format zu bringen?

Is grad das einfachste was mir einfällt - ansonsten schätze ich wirds etwas aufwendiger...

ciao Andreas
 
hab ich mir auch schon überlegt, aber
dann hab ichn bisschen rumprobiert und
das hier probiert:
PHP:
$var = eregi_replace($word,$highlight,$var);
...und es funktioniert prima ;)
 
"eregi_replace -- Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung"

Ok - stimmt ;) Naja - hatte ich noch nicht gebraucht :rolleyes:
 
Zurück