Как подчеркнуть слова в строке, которые также появляются в словаре. PHP - PullRequest
1 голос
/ 21 сентября 2011

Привет, у меня есть строка, содержащая несколько слов (около 26), и некоторые из них будут настоящими словами, которые появляются в словаре, другие будут просто мусором.

Мне нужно, чтобы компьютер работалчерез эту строку, которая была выведена пользователю, и подчеркните или выделите реальные слова.

Я использую PHP, и строка будет отличаться каждый раз, и у меня уже есть словарь в формате txt,что я импортировал в PHP и разделил на массив, вот откуда должны исходить настоящие слова.

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Если есть пунктуация, вы можете сначала удалить ее, используя регулярное выражение.

$sentence = 'ajhfd dog bba food!';
$clean_sentence = preg_replace ('/[^0-9a-z\s]/', '', $sentence);

Вы можете использовать функцию разнесения, чтобы разбить слова на массив.

$words = explode(' ', $clean_sentence);

И тогда вы можете просмотреть слова и посмотреть, есть ли они в вашем словаре.

foreach ($words as $word) {
    if (in_array($word, $dictionary)) {
        // This is a dictionary word, lets highlight it
        $sentence = preg_replace("/\b$word\b/", "<b>$word</b>", $sentence);
    }
}
1 голос
/ 21 сентября 2011

Вы разбиваете каждую строку на массив слов, используя explode () через пробел.Вы можете сделать то же самое для текстового файла с новыми строками.Затем переберите каждое значение в массиве, который вы сделали из вашей строки, и используйте in_array (), чтобы проверить, находится ли значение в массиве словаря.Если это правда, вы можете назначить <span class="dict_word">$value</span> или что-то подобное и просто стиль для этого класса.

Это звучит как домашнее задание, поэтому я не собираюсь писать код для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...