没有HTML的str_word_count()

时间:2012-05-20 05:43:18

标签: php ckeditor

我正在使用str_word_count()来计算CKEditor内容中的字数。我从CKEditior获得的内容是一个HTML内容,我需要计算字数。在MS单词中,我得到单词数328.另一方面,在使用str_word_count() 362个单词后,我从我的内容中得到html标签。有没有办法从php字符串变量中删除任何HTML标记?我尝试使用strip_tags(),它给了我336.有没有办法在PHP中获得确切的字数?提前谢谢你。

例如这篇文章由这样的用户输入。

  

混合学校或男女皆宜的学校

     

你有没有想过混合学校对学生的影响?   美国大多数学校都是混合性别,这意味着女孩和女孩   男孩们在同一个教室里互相学习。有些父母   想知道他们孩子在学校的影响   混合学校或男女皆宜的学校。这些影响不是关于   只有教育,对人格,行为的影响   异性,最后是他们的教育。在我看来,我认为   青少年学生的男女通用学校比混合学校要好得多   学校,这个结论有很多原因。

在MS字中,字数为:107

在php中

  

 

     

混合学校或男女皆宜的学校

     

 

     

你有没有想过混合学校对学生的影响?   美国大多数学校都是混合性别,这意味着女孩和女孩   男孩们在同一个教室里互相学习。有些父母   想知道他们孩子在学校的影响   无论是在混合学校还是在男女皆宜的学校。这些影响不是   关于教育,关于他们的个性,   与异性的行为,最后他们的教育。在我的   意见,我认为青少年学生的男女皆宜的学校是   比混合学校好多了,这个结论基于很多   的原因。

结果:114

我正在为一篇段落文章计算额外的7个单词。

修改

使用后

    $text = strip_tags($this->orginal_content);
    $text = str_replace(' ',"",$text);
    $this->orginal_content_count = str_word_count($text);

结果:112

我找到了3个空格

        Mixed School or Unisex School       Have you ever think about the impact of mixed schools for students? Most of the schools in the U.S are mixed gender, which mean girls and boys are studying with each other in the same classroom. Some parents wonder about the influences of their child’s in the school either in mixed school or in unisex ones. These influences are not about the education only, the influences about their personality, behavior with the opposite sex and finally their education. In my opinion, I think the unisex schools for teenager’s students are much better than mixed schools, and this conclusion based in many reasons. 

1 个答案:

答案 0 :(得分:2)

好。

您已经了解strip_tags()。这是一个好的开始。

您正在用空格替换 ,但这只会处理该单个特定实体。你最好使用PHP的html_entity_decode() function,这将从你的字符串中删除所有实体代码。

如果额外间距导致您出现问题,您可以尝试执行str_replace()preg_replace()来摆脱它们。例如:

$output = preg_replace('/\s\s+/',' ',$input);

这会将所有多个空格实例转换为单个空格字符。

现在你的字数应该会好一点。

希望有所帮助。