ho scritto una funzione che è meglio di str_word_count
perché quella funzione PHP conta trattini e altri personaggi come parole.
Anche la mia funzione affronta il problema dei doppi spazi, di cui molte delle funzioni scritte da altre persone non tengono conto.
Inoltre questa funzione gestisce i tag HTML. Nel caso in cui due tag fossero nidificati insieme e si usasse semplicemente la funzione strip_tags
, questa sarebbe conteggiata come una parola quando è due. Ad esempio: <h1>Title</h1>Text
o
Inoltre, escludo JavaScript prima che il codice all'interno dei tag <script>
venga considerato come parole.
Infine, la mia funzione gestisce gli spazi all'inizio e alla fine di una stringa, spazi multipli e interruzioni di riga, caratteri di ritorno e caratteri di tabulazione.
###############
# Count Words #
###############
function count_words($str)
{
$str = preg_replace("/[^A-Za-z0-9 ]/","",strip_tags(str_replace('<',' <',str_replace('>','> ',str_replace(array("\n","\r","\t"),' ',preg_replace('~<\s*\bscript\b[^>]*>(.*?)<\s*\/\s*script\s*>~is','',$str))))));
while(substr_count($str,' ')>0)
{
$str = str_replace(' ',' ',$str);
}
return substr_count(trim($str,' '),' ')+1;
}
fonte
2016-05-20 17:00:38
suona come un "quante parole del file di testo" problema lavoro per me;) –
Penso che questa sia la soluzione al vostro problema: http://www.reconn.us/count_words.html –
http : //stackoverflow.com/questions/21652261/using-str-word-count-for-utf8-texts – trante