Как посчитать все символы, включая пробелы и регулярные выражения в php? - PullRequest
0 голосов
/ 05 августа 2011

как мне посчитать все символы? Я выбираю поле из mysql (который является простым текстом), и я хотел бы сосчитать все буквы в этом тексте, который извлекается (включая пробелы и все специальные символы).

Я сравниваю значение с числом, например:

Если текст содержит более 1000 символов, $var++ поэтому я знаю, сколько полей имеют более 1000 символов.

strlen не похоже на правильный счет.

Ответы [ 4 ]

5 голосов
/ 05 августа 2011

Используйте strlen или mb_strlen, если у вас символы не ASCII.

1 голос
/ 05 августа 2011

Это, вероятно, происходит из-за проблем с кодировкой. Это не имеет ничего общего с regex s.

Вы можете использовать mb_strlen для получения правильной длины.

1 голос
/ 05 августа 2011

Вам необходимо 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

0 голосов
/ 05 августа 2011

Вы можете позволить mysql выполнять подсчет, поскольку он знает кодировку, имеет функцию подсчета и может даже дать вам количество полей в таблице, которые имеют более 1000 символов напрямую:

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

Это вернет ваш var как результат MySQL. Это избавит вас от необходимости возвращать данные всей таблицы только для получения этого числа.

...