php - 在 php 中计算带有嵌入式 html 的单词

标签 php

我有一些相当大的段落(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/

相关文章:

php - 如何在PHP中实现类似YQL的API?

php - SQL 按日期组按产品 ID 计数记录

php - 使用 PHP 进行非阻塞 SFTP/FTPS 上传?

php - 在 laravel Controller 构造函数中注入(inject)模型

使用 cPanel 运行 CentOS 的 VPS 服务器上的 PHP CLI "Out of memory"错误

javascript - 如何提取 mysql 列值并将其放入同一页面的 <div> 中?

备份 MySQL 数据库的 PHP 脚本

php - 从字符串中提取特殊的哈希值

javascript - 使用 jquery-ajax 将表单输入发送到服务器

php - MySQL 没有拉取所有行