• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Suchwort hervorheben

S

slosd

Guest
Mit dem hier wird das suchwort markiert:
PHP:
$abfrage = "SELECT pid,ptopic,pname,pvs,pdescr,pfnkt,picosrc,ptype,plang,pfhp,pdwnl FROM data WHERE pid LIKE '$pid'";
  $ergebnis = mysql_query($abfrage);
  $row = mysql_fetch_row($ergebnis);
if(isset($_GET['mark']))
{
$suche = $_GET['mark'];
$row[2] = eregi_replace("$suche","<span class=\"highlight\">$suche</span>",$row[2]);
$row[4] = eregi_replace("$suche","<span class=\"highlight\">$suche</span>",$row[4]);
$row[5] = eregi_replace("$suche","<span class=\"highlight\">$suche</span>",$row[5]);
$row[7] = eregi_replace("$suche","<span class=\"highlight\">$suche</span>",$row[7]);
$row[8] = eregi_replace("$suche","<span class=\"highlight\">$suche</span>",$row[8]);
}

Wenn das Suchwort z.B. "php" ist, werden "pHp" "PHP" usw gefunden und "gehighlighted". Das Problem ist, dass
jedes "PHP" (Egal ob groß oder klein) mit den Groß - u. Kleinbuchstaben des Suchwortes vertauscht werden.

Ein Beispiel:
Das Suchwort ist "php". Der Text ist "PHP ist gleich phP"
Nach dem ersetzen ist der Text "php ist gleich php"

Ich hoffe ich hab das verständlich erklärt.
 
Zuletzt bearbeitet von einem Moderator:
Moin!

Weißt Du, wofür das 'i' in 'eregi' steht? Falls nicht, laß es mal weg...

Ahoi - Pit
 
pit-r schrieb:
Moin!

Weißt Du, wofür das 'i' in 'eregi' steht? Falls nicht, laß es mal weg...

Ahoi - Pit

Groß und Kleinschreibung sollen ja ignorierte werden.

Mein Problem ist, dass das Wort im Text mit <span class=\"highlight\"></span> ersetzt wird und zw. dem span dann das SUCHWORT steht und nicht mehr das Wort, dass vorher da war. Also werden alle "php" "PHP" usw. mit (im Beispiel) "php" ersetzt und im Text, der ausgegeben wird steht überall statt "PHP" --> "php"
Ich müsste also wissen wie das im Text gefundene Wort geschrieben wurde ("php" oder "pHp" usw.)
 
Ich möchte, dass "php ist gleich pHP"
nach dem ersetzten so aussieht:
"<span>php</span>ist gleich <span>pHP</span>"

Jetzt schaut der Text so aus (wenn das Suchwort "php" ist)
"<span>php</span>ist gleich <span>php</span>"
 
Das jetzt war eigentlich nicht zeitlich gemeint sondern war eher so ein Füllwort :whacky: :D

Dann erklär ichs noch einmal:

Wort nach dem in der Suche gesucht wird: "php"
Der Text in dem das Wort vorkommt lautet: "phP ist gleich pHp und Php"
durch eregi_replace sollen alle "php"s markiert werden (Ohne Unterscheidung zw. Groß und Kleinschreibung)
PHP:
eregi_replace("$suche","<span class=\"highlight\">$suche</span>",$row[2]);
da aber das Wort, dass im gefundenen Text steht, durch das Suchwort ("php") ersetzt wird, steht dann in allen markierten Wörtern "php":
"<span>php</span> ist gleich <span>php</span> und <span>php</span>"
statt:
"<span>phP</span> ist gleich <span>pHp</span> und <span>Php</span>"

Ich müsste also wissen wie das Wort, das ersetzt wird, geschrieben ist
("phP", "pHp" oder "Php")
Und da hab ich keinen Ahnung wie ich das machen soll.
 
Zuletzt bearbeitet von einem Moderator:
PHP:
<?php

$str = 'phP ist gleich pHp und Php';

$suche = 'php';

echo preg_replace('/(' . $suche . ')/i', '<span class="highlight">$1</span>', $str);

?>
 
Zurück
Oben