webForumDet fria alternativet

Skum preg_match

1 svar · 262 visningar · startad av nordan

nordanMedlem sedan juni 2000949 inlägg
#1

Om jag testar och kör $word = "test"; så highlightas texten test i ordet testa och ordet test. Men om jag gör samma sak med hittar och bara skriver hitta så funkar det inte Varför?

$word = "hitta";

$string = "Detta en testa för att se om vi hittar ordet test";
echo "$string<br><br>";
if (preg_match("/".$word."\b/i", "$string")) 
{
   echo "A match was found. And the word was: $word";
   $replacement = "<b>".$word."</b>";
   echo preg_replace("/$word/", "$replacement", "$string");

} 
else 
{
   echo "The word $word was not found";
}
MatteMedlem sedan aug. 20002 975 inlägg
#2

Med ditt \b har du sagt att efter sökordet ska komma skiljetecken, mellanslag eller liknande.
Tar du bort \b så kommer texten att hittas.

Jag skulle även rekommendera att du kör ditt sökord genom preg_quote först, om du inte har fullständig kontroll på det.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)