PHP zvýraznění vyhledaného řetězce ve výsledku

Autor Beawiz
Publikováno Před 4 lety
Kategorie programovani
Stav Vyřešeno
Ahoj, mám následující PHP konstrukci, která vyhledává v MySQL tabulce řetězec $retezec:
$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ědi na dotaz 46

RE: PHP zvýraznění vyhledaného řetězce ve výsledku

Autor Floutek
Publikováno Před 4 lety
Kategorie programovani
Stav Zkontrolováno
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);


46

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace