Как я могу получить количество символов в PHP? - PullRequest
2 голосов
/ 28 апреля 2010

mb_strlen дает только количество байтов, а не то, что я хотел.

Должно работать с многобайтовыми символами.

Ответы [ 7 ]

11 голосов
/ 28 апреля 2010

мб_стрлен может быть?

9 голосов
/ 28 апреля 2010
mb_strlen($text, "UTF-8");
6 голосов
/ 28 апреля 2010

mb_strlen() с mb_internal_encoding('UTF-8')

0 голосов
/ 06 августа 2017

strlen (): Возвращает количество байтов, а не количество символов в строке.

$name = "Perú"; // With accent mark
echo strlen($name); // Display 5, because "ú" require 2 bytes.

$name = "Peru"; // Without accent mark
echo strlen($name); // Display 4

mb_strlen (): Возвращает количество символов в строке, имеющей кодировку символов. Многобайтовый символ считается как 1.

$name = "Perú"; // With accent mark
echo mb_strlen($name); // Display 4, because "ú" is counted as 1.

$name = "Peru"; // Without accent mark
echo mb_strlen($name); // Display 4

iconv_strlen (): Возвращает количество символов строки в виде целого числа.

$name = "Perú"; // With accent mark
echo iconv_strlen($name); // Display 4.

$name = "Peru"; // Without accent mark
echo iconv_strlen($name); // Display 4
0 голосов
/ 03 мая 2010

Я не уверен насчет mb_strlen, но сам использую просто старый strlen ... http://php.net/manual/en/function.strlen.php

0 голосов
/ 28 апреля 2010

Если вы используете шаг кодирования UTF-8 через все байты в строке и считаете символы, для которых 8-й бит НЕ установлен.

Это решение не нуждается в расширении mb.

0 голосов
/ 28 апреля 2010

mb_strlen строка измеренная для длины.

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Прямо из документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...