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

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

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

05.06.2017 napsal Beawiz

Vyřešeno php highlight search string
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.
Nejlépe hodnocení uživatelé
Hanz

Počet UP: 4473

React: 209

Rusty

Počet UP: 2088

React: 94

OL3G

Počet UP: 1449

React: 60

Strosmajer

Počet UP: 403

React: 20

SYSTEM

Počet UP: 369

React: 18

Oxytocin

Počet UP: 251

React: 18

RE: PHP zvýraznění vyhledaného…

21.06.2017 odpověděl Floutek

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);
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