Skum preg_match

PHP

1 svar · 265 visningar · startad av nordan

Medlem sedan juni 2000949 inlägg
Trådstart#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";
}
Medlem 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.

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)