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

1 odpovědí
05.06.2017 napsal Beawiz dotaz do kategorie programovani 5 / 8

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

Vyřešeno

php mysql databaze

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.

21.06.2017 odpověděl Floutek Uživatel
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