PHP:计算DIV中的单词

时间:2011-02-17 03:49:54

标签: php count words

我说PHP,因为我有这个片段用PHP计算单词,也许用jQuery更好?

$words = str_word_count(strip_tags($myString));

我有一个PHP页面,其中包含静态HTML和一些PHP变量,如下所示:

<?php 
    $foo = "hello"; 
?>
<html>
<body>
    <div>total words: <?= $words ?></div>
    <div class="to_count">
        <?= $foo ?> <b>big</b> <i>world</i>, how <span>are</span> we today?
    </div>
</body>
</html>

我尝试了查看PHP的输出缓冲并在.to_count DIV周围放了ob_start()$buffer = ob_get_clean();,但我似乎无法使用顶部的$buffer PHP页面计算单词。

欢迎任何帮助我的方式,欢呼。

4 个答案:

答案 0 :(得分:2)

使用jQuery和regex:

var wordCount = $.trim($(".to_count").text()).split(/\s+/g).length;

答案 1 :(得分:0)

在声明之前你不能使用缓冲区。如果这样做,则默认为无效的值。我建议在将单词插入HTML并设置带计数的变量之前对单词进行计数。

答案 2 :(得分:0)

我建议在实际呈现之前构建.to_count div的内容。像这样:

<?php 
    $foo = "hello";
    $content = "$foo <b>big</b> <i>world</i>, how <span>are</span> we today?";
    $words = str_word_count(strip_tags($content));
?>
<html>
<body>
    <div>total words: <?= $words ?></div>
    <div class="to_count"><?= $content ?></div>
</body>
</html>

答案 3 :(得分:0)

您可以使用输出缓冲来生成它。我认为这比在PHP中生成HTML要好。

<?php
ob_start();
$foo = "hello";
?>


<?php echo $foo ?> <b>big</b> <i>world</i>, how <span>are</span> we today?

<?php
    $myString = ob_get_contents();
    ob_end_clean();
    $words = str_word_count(strip_tags($myString));
?>
<html>
<body>
    <div>total words: <?php echo $words ?></div>
    <div class="to_count">
        <?php echo $myString ?>
    </div>
</body>
</html>