【问题标题】:How to count all characters including spaces and regex in php?如何计算php中的所有字符,包括空格和正则表达式?
【发布时间】:2011-08-05 12:59:35
【问题描述】:

如何计算所有字符?我正在从 mysql 中选择一个字段(这是一个纯文本),我想计算提取的文本中的所有字母(包括空格和所有特殊字符)。

我正在将值与数字进行比较,例如:

如果文本超过 1000 个字符,则 $var++ 所以我知道有多少字段超过 1000 个字符。

strlen 似乎计数不正确。

【问题讨论】:

  • strlen / mb_strlen ?你是什​​么意思似乎计数不正确
  • “Strlen 似乎计数不正确” - 请详细说明。和/或看看dev.mysql.com/doc/refman/5.1/en/…
  • 它没有计算正确的字符数。我尝试使用 strlen 计算一个字段中的字符,然后尝试使用在线“计数字母”应用程序计算此字符,结果不一样。
  • 我会尝试下面的建议。
  • mb_strlen 正在工作!谢谢大家的回复。

标签: php mysql count character


【解决方案1】:

如果您有非 ASCII 字符,请使用 strlenmb_strlen

【讨论】:

    【解决方案2】:

    这可能是由于编码问题而发生的。这与regexs 无关。

    您可以使用mb_strlen 来获取正确的长度。

    【讨论】:

      【解决方案3】:

      Unicode 字符需要mb_strlen()http://php.net/manual/en/function.mb-strlen.php

      另一方面,如果您只是计算数据库中有多少条目超过 1000 个字符,则可以使用 MySQL 函数 CHAR_LENGTH() 来计算数据库中的总数:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

      【讨论】:

        【解决方案4】:

        您可以让 mysql 进行计数,因为它知道字符集,具有计数功能,甚至可以直接为您提供表中超过 1000 个字符的字段数:

        SELECT count(*) as var FROM table WHERE CHAR_LENGTH(field) > 1000;
        

        这将返回您的var 作为 mysql 结果。这将使您无需返回整个表数据即可获得此数字。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-29
          • 1970-01-01
          相关资源
          最近更新 更多