我说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页面计算单词。
欢迎任何帮助我的方式,欢呼。
答案 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>