Autor Zpráva
Vader
Profil
Mám script:
<?
$my_word = 'napísané';
 
$all_wordsa = "Nejaký text bol napísaný v roku 2010...";
$all_words = explode(" ",$all_wordsa);
 
$bestMatch = array('word' => $my_word, 'match' => 0);
 
foreach($all_words as $word) {
	similar_text($word, $my_word, $percent);
	if($percent > $bestMatch['match']) $bestMatch = array('word' => $word, 'match' => $percent);
}
 
if($bestMatch['match'] < 100)
echo str_replace($bestMatch['word'],"<b>".$bestMatch['word']."</b>",$all_wordsa);


Ale ako ho upraviť tak, aby slov v $my_word bolo viac oddelených napr. čarikou - napísané,rok. A ak by boli podobné označili by sa ako <b>
Napr. takto:
Nejaký text bol napísaný v roku 2010...
Alphard
Profil
Stejně jako máte explode() pro rozdělení vstupního textu, použijte ho znovu pro rozdělení slov ve filtru. Pak bude třeba zanořit další cyklus a porovnat každé s každým.
Skloňování zázračně nevyřešíte, similar_text() bude zřejmě muset stačit, kdyžtak zkusit alternativy z http://php.vrana.cz/preklepy-ve-vyhledavani.php. Nebo do filtru zadávat jen kořen slova a regulárama hledat shodu (možná by to zvládl i similar_text(), nevím).

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:

0