【问题标题】:Php character count without spaces and html tags没有空格和html标签的php字符数
【发布时间】:2016-10-24 13:08:13
【问题描述】:

我想统计 Microsoft Word 等文本中的字符数。

<p><b>Lorem Ipsum</b> is simply dummy text of the printing and typesetting industry.Tom's farm. 12th century.</p>

12th -> 'th' 是一个特殊字符,在数字 12 之下。

如何在 PHP 中做到这一点?

【问题讨论】:

  • 去掉标签和空格然后计数。我不明白你对th12 的意思。示例:eval.in/665455.
  • 我无法完全理解您的问题。你能举个例子吗?
  • 为什么要使用 php 做这么简单的事情?您可以改用 Jquery。 PHP 服务器端脚本有时你不必用 php 做类似这样的简单事情

标签: php text count character


【解决方案1】:
$string = "<p><b>Lorem Ipsum</b> is simply dummy text of the printing and typesetting industry.Tom's farm. 12th century.</p>";
$string = strip_tags($string);
$string = preg_replace("/\s/", "", $string);
$character_count = strlen($string);

如果有第一个 Unicode 字符,strlen 可能会将其视为两个字符。那你也许应该看看 mb_strlen。

【讨论】:

  • th 不是多字节字符(或不在提供的示例中)。我认为,使用量词时,正则表达式的处理速度也会更快。
  • 但也许他从某个地方获取了文本,只是不知道如何在此处显示。我刚刚提到它,以防他会使用多字节字符。因为我不是正则表达式的专家。你的意思是处理速度会更快吗? preg_replace("/\s*/", "", $string);
  • 是的 *+。使用单个字符单独替换它们。 mb_strlenstrlen 都将 th 计为 2 个字符,因为它是 2 个字符。
【解决方案2】:

我的解决方案是;

    $content = 'Some Text...';

    $trim = strip_tags($content);
    $trim=str_replace([" ","\n","\t","&ndash;","&rsquo;","&#39;","&quot;","&nbsp;"], '', $trim);

    $totalCharacter = strlen(utf8_decode($trim));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2020-06-23
    • 2012-11-06
    • 2016-01-03
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多