Подсчет слов, начинаем с нуля

Статус
В этой теме нельзя размещать новые ответы.

Baracuda

Постоялец
Регистрация
31 Дек 2007
Сообщения
85
Реакции
4
Есть простецкий код
Код:
<html>
<head>
<title>Тест программы</title>
</head>
<body>
<?php
     $string = "Подсчет слов!";
     $numberOfWords = str_word_count($string);
     $word1 = str_word_count($string, 1);
     $word2 = str_word_count($string, 2);
     echo "В предложении <b>$string</b> , которое находится в переменной \$string содержится $numberOfWords слов.";
?>
</body>
</html>

Тут по идее два слова, но мне вырисовывает цифру 4, откуда она берется? :bc:
 
Вроде работает, если вызывать функцию с параметром, в котором указать весь русский алфавит:
PHP:
$characterMap = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
$numberOfWords = str_word_count($string, 0, $characterMap);
 
хм:) а я бы сделал explode(" ", $string); а потом каунт масива. Не совсем правильно но считало бы верно.
 
2Otis22
Даже твой ответ правильно не обсчитало бы.

2Baracuda
For the purpose of this function, 'word' is defined as a locale dependent string containing alphabetic characters, which also may contain, but not start with "'" and "-" characters.
 
низнаю я юзаю очень давно
// получаем массив, из переменной $MySTR
$MyARRAY=preg_split("/[\s]+/s",$MySTR);
// далее передаем массив слов, потом устанавливаем количество букв в слове которые нужно оставить (это нитервал минимум и максимум)
divide($MyARRAY,2,30);

function divide(&$array,$min=6,$max=15)
{
$words=array();
reset($array);
foreach($array as $string:(
if(strlen($string) >= $min && strlen($string) <= $max:(
$words[]=$string;
endif;
endforeach;
$array=$words;
unset($words);
return $array;
}
 
вот вариант из мана PHP

PHP:
<?php
$string = "This is\tan example\nstring";
$tok = strtok($string, " \n\t");
while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху