подсчитать количество слов

Тема в разделе "PHP", создана пользователем lena berkova, 3 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. lena berkova

    lena berkova

    Регистр.:
    14 янв 2009
    Сообщения:
    441
    Симпатии:
    19
    есть ли функция которая вернула бы сколько раз в тексте встречается какое нибудь выражение, например "раз два три"?
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    lena berkova нравится это.
  3. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    PHP:
    function countMatch($in$pattern) {
        return 
    preg_match_all('#'.$pattern.'#smiU'$in$match);
    }

    $in 'Hello, рАз дВа тРи, hello, hELLo, heLLo
    Hello, hello, Раз двА Три hELLo, heLLo
    Hello, раЗ ДВа трИ hello, рАЗ ДВа три hELLo, heLLo'
    ;
    $pattern 'раз два три';

    echo 
    countMatch($in$pattern);
    Вот без учета регистра...
     
  4. kactetus

    kactetus митя is here )

    Регистр.:
    26 авг 2007
    Сообщения:
    441
    Симпатии:
    278
    А зачем изобретать велосипед.
    Стандартная функция в PHP.

    PHP:
    $content "Yandex govno."
    $skolko_slov str_word_count($content);
    echo 
    $content;
     
  5. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    или:
    PHP:
    $str "раз два три";
    $arr explode(" "$str);
    $count count($arr);
     
  6. kactetus

    kactetus митя is here )

    Регистр.:
    26 авг 2007
    Сообщения:
    441
    Симпатии:
    278
    Dj_StelS через count ты подсчитаеш и теги если они будут в тексте. А str_word_count точно выдает только слова.
     
  7. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Народ ( kactetus, Dj_StelS ) я конечно все понимаю но вообще то ТС необходимо было в узнать количество вхождений одной строки в другой, а не количество слов в строке.

    Для более наглядного примера, нам в строке необходимо подсчитать количество повторов строки 'раз два три' ( то что необходимо посчитать выделено жирным в тексте :(
    Код:
    Hello, [B]рАз дВа тРи[/B], hello, hELLo, heLLo 
    Hello, hello, [B]Раз двА Три[/B] hELLo, heLLo 
    Hello, [B]раЗ ДВа трИ[/B] hello, [B]рАЗ ДВа три[/B] hELLo, heLLo'

    kactetus - иногда полезно изобретать велосипед, имхо что бы мозг не затух :).

    Мой же велосипеде который я предоставил в 3 посте позволяет считать вхождения строки в строку без четкой привязки к регистру.
     
Статус темы:
Закрыта.