我正在为一个门户做一个房地产提要,它告诉我一个字符串的最大长度应该是 20,000 字节 (20kb),但我以前从未遇到过这种情况。
如何测量 varchar string
的 byte
大小。所以我可以做一个 while 循环来减少它。
最佳答案
您可以使用 mb_strlen() 来获取字节长度,使用只有字节字符的编码,而不用担心多字节或单字节字符串。 例如,正如 drake127 在 mb_strlen 的评论中所说,您可以使用 '8bit' 编码:
<?php
$string = 'Cién cañones por banda';
echo mb_strlen($string, '8bit');
?>
使用 strlen 函数可能会遇到问题,因为 php 可以选择重载 strlen 以实际调用 mb_strlen。在 http://php.net/manual/en/mbstring.overload.php 中查看有关它的更多信息
要按字节长度修剪字符串而不在多字节字符中间拆分,您可以使用:
mb_strcut(string $str, int $start [, int $length [, string $encoding ]] )
关于php - 在 php 中以字节为单位测量字符串大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7568949/