Autor Zpráva
Kenik01
Profil
Zdravím,
potřebuji z popisku produktů najít věty které obsahují určité slovo.

Popisek projedu:
$result = preg_split('/(?<=[.?!;:])\s+/', $story, -1, PREG_SPLIT_NO_EMPTY);
Potom testuji každou "větu"
strpos ( $result[$i], $hledam )

Problém je že strpos nefunguje zcela korektně:
hledám "léč"
najde ve větách:
 string(149) "V posledních letech řady výzkuných studií našla nové využití této směsi bylin, včetně léčby různých forem rakoviny."
string(82) "Pro své léčivé účinky se ze své domoviny rozšířila do celého světa."

Nenajde:
 string(25) "léčila svého manžela."
 string(74) "léčí stařeckou hyperplasii prostaty a prostatismus mladších mužů -" 


Data mají v DB porovnávání utf8_czech_ci PHP script má kodování UTF-8
Fakt už nevím co s tím.
panther
Profil
Kenik01:
mb_strpos, obecne mb_*
Jan Tvrdík
Profil
Kenik01:
Zrovna pro tvůj případ bude stačit i strpos, akorát musíš správně interpretovat návratovou hodnotu.

// nutno použít !==, != nebude fungovat správně, bude-li hledané slovo na začátku
if (strpos ( $result[$i], $hledam) !== FALSE) {
    echo "Nalezeno";
}
Kenik01
Profil
Jan Tvrdík:
Díky funguje

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: