PHP zvýraznění vyhledaného řetězce ve výsledku
Ahoj, mám následující PHP konstrukci, která vyhledává v MySQL tabulce řetězec $retezec:
A chci, aby se ve výsledku v proměnné $nazev zvýraznil hledaný text $retezec . Tzn. jako to dělá např. firefox při vyhledávání na stránce. Díky za jakékoliv tipy.
Ahoj, když výstup uložíš do proměnné $text a hledané slovo do proměnné $retezec, tak můžeš použít tuto zvýrazňovací PHP funkci (není ode mě):
$sql = "SELECT * FROM tabulka WHERE nazev LIKE '%$retezec%' ";
$query = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($query)) {
$id = $row['id'];
$datum = $row['datum'];
$nazev = $row['nazev'];
echo "Nalezené záznamy: $nazev (id: $id - $datum)";
}
A chci, aby se ve výsledku v proměnné $nazev zvýraznil hledaný text $retezec . Tzn. jako to dělá např. firefox při vyhledávání na stránce. Díky za jakékoliv tipy.
ODPOVĚĎ
Ahoj, když výstup uložíš do proměnné $text a hledané slovo do proměnné $retezec, tak můžeš použít tuto zvýrazňovací PHP funkci (není ode mě):
function zvyraznit($text, $retezec) {
preg_match_all('~\w+~', $retezec, $m);
if(!$m)
return $text;
$re = '~\\b(' . implode('|', $m[0]) . ')\\b~';
return preg_replace($re, '$0', $text);
}
print zvyraznit($text, $retezec);