Я использую разные функции в PHP, которые помогают мне подсчитывать слова, символы, а также время чтения. Но у них есть одна небольшая «ошибка»: функции подсчитывают все - включая bbCode (с помощью смайликов). Я не хочу этого!Не включайте bbCode во время чтения и счетчики слов/символов
function calculate_readingtime($string) {
$word = str_word_count(strip_tags($string));
$m = floor($word/200);
$s = floor($word % 200/(200/60));
$minutes = ($m != 0 ? $m.' min.' : '');
$seconds = (($m != 0 AND $s != 0) ? ' ' : '') . $s.' sec.';
return $minutes . $seconds;
}
$content = 'This is some text with [b]bbCode[/b]! Oh, so pretty :D And here\'s is a link too: [url="https://example.com/"]das linkish[/url]. What about an image? That\'s pretty to, you know. [img src="https://example.com/image.jpg" size="128" height="128" width="128"] And another one: [img src="https://example.com/image.jpg" height="128"]';
$reading_time = calculate_readingtime($content);
$count_words = str_word_count($content, 1, 'àáãâçêéíîóõôúÀÁÃÂÇÊÉÍÎÓÕÔÚÅåÄäÖö');
$count_chars_with_spaces = mb_strlen($content);
echo 'Reading time: '.$reading_time.'<br>';
echo 'Words: '.count($count_words).'<br>';
echo 'Characters with spaces: '.$count_chars_with_spaces;
# OUTPUT
Reading time: 16 sec.
Words: 55
Characters with spaces: 326
Я хочу, чтобы счетчики (в том числе во время чтения), чтобы быть более точными, и не включаю в себя BBcode, но включает в себя текст, которые находятся в пределах BBcode (например: включить текст bbCode
из [b]bbCode[/b]
).
Как это сделать?