Autor Zpráva
Hruska
Profil *
Mam takyto script na pocet slov

function pocet($text)
{
$text = strip_tags(trim($text));
$pocet_slov = explode(" ", $text);
array_walk($pocet_slov, 'trim');

return count(array_filter($pocet_slov));
}

Len mi ide o tom, ze chcem aby napr. 'koniec.Nova' mi zaratalo ako dve slova, tak isto ked je ciarka, ide o tom ked sa clovek pomyli a neda ako novu vetu medzeru. Poradite?
Joker
Profil
Hruska
Co nejdřív vyrobit řetězec, kde budou včechny bílé znaky, tečky a čárky nahrazené jednou mezerou a na něj pak použít ten kód?
Hruska
Profil *
Nepomohol by si?
Ja som amater, prosiim.
bielda
Profil
Co třeba použít funkci str_word_count ().

http://cz.php.net/manual/en/function.str-word-count.php
Hruska
Profil *
ked napisem cez tu f. 'bál' tak to rata ako dve slova preco?
bielda
Profil
Aha, to se omlouvám, asi to nezvládá znaky s diakritikou... Sám jsem tuhle funkci nikdy nepoužil, jen jsem ji kdysi zahlédl v manuálu.

V tom případě bych to řešil asi takto:

function count_words ($string)
{
$_words = preg_split ('~[ .,?!:]+~', strip_tags(trim($string)));

return count ($_words);
}

Mezi ty hranaté závorky můžete dopsat další rozdělovací znaky.

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: