webForumDet fria alternativet

highlight sträng

3 svar · 270 visningar · startad av U2K

U2KMedlem sedan jan. 2000231 inlägg
#1

Detta skulle vara bra om det kunde fungera. såg Web-Tors inlägg med highlight funktionen gjord med preg_replace.
Exakt en sådan skulle jag vilja ha men den som han hade fungerade inte så bra.

<?
function highlight ($str, $Search){ 
    if (isset($Search))
        $str = preg_replace ( "/(.*?)(" . $Search . ")(.*?)/is", "\1<b>\2</b>\3", $str ); 
    return $str; 
}

?>

<?=highlight($row[0], $Search)?>

Detta händer...

EX:
$str = "Detta är en text där texten inte har något sammanhang";

med highlight funktion..
RESULTAT:
$str = "";
´
Så här är min tanke på hur det ska se ut.

SÅHÄRSKADETVARA:
$str = "Detta är en <b>text</b> där <b>text</b>en inte har något sammanhang";

Någon som har lösningen..?

nicclasMedlem sedan feb. 20001 061 inlägg
#2

Du saknar några backslash i din kod (det verkar som om [PHP]-taggen här på wF tar bort dem :( )

Så här skall det vara:

<?
function highlight ($str, $Search){
if (isset($Search))
$str = preg_replace ( "/(.*?)(".$Search.")(.*?)/mis", "\\1<b>\\2</b>\\3", $str );
return $str;
}

$str = "Detta är en text där texten inte har något sammanhang";
$Search="text";
echo highlight($str, $Search);
?>

MungoMedlem sedan jan. 2000376 inlägg
#3

Jag har också märkt att PHP-funktionen här på wF strippar lite backslash och sånt. Inte så bra kanske...

U2KMedlem sedan jan. 2000231 inlägg
#4

Jag kom på det faktiskt själv :)
Kollade igenom lite preg_replace kod i manualen och fattade att det skulle vara \\ istället för \.
Nu fungerar den fint. Tack ändå för all hjälp

Genererad på 385 ms · cache AV · v20260730165559-full.f96bc7eb