我有一些相当大的段落(5000-6000 字),其中包含文本和嵌入的 html 标签。我想将这个大段落分成 1500 个单词的 block (忽略其中的 html 标记)即 1500 应该只包含实际单词而不是任何标记单词。 使用函数 strip_tags
我可以计算单词的数量(忽略 html 标记),但我无法弄清楚如何将它分成 1500 个单词的 block (仍然包括 html 标记)。例如
This is <b> a </b> paragraph which <a href="#"> has some </a> some text to be broken in <h1> 5 words </h1>.
结果应该是
1 = This is <b> a </b> paragraph which
2 = <a href="#"> has some </a> some text to
3 = be broken in <h1> 5 words </h1>.
最佳答案
考虑明智地使用 explode() 函数。或者更好,但更长 - 将匹配单词或标签及其中所有文本的正则表达式。您应该将 html 标签内的元素视为牢不可破的实体。例如,您可以编写一个函数,将大段分成以下实体数组:
$data = array(
array( "count" => 2, "text" => "This is "),
array( "count" => 1, "text" => "<b> a </b>"),
array( "count" => 2, "text" => " paragraph which"),
...
etc.
);
然后,您应该编写一个循环,从 $data 数组中生成小段。
另外,有时您的段落不能恰好达到 1500 字长。它可以或多或少,因为你不应该分开你的 html 标签。
关于php - 在 php 中计算带有嵌入式 html 的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935450/