在 php 中以字节为单位测量字符串大小

2022-08-30 09:05:14

我正在为门户做一个房地产提要,它告诉我字符串的最大长度应该是20,000字节(20kb),但我以前从未遇到过这种情况。

如何测量 .所以我可以做一个临时循环来修剪它。bytevarchar string


答案 1

您可以使用 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 ]] )

答案 2

您必须确定字符串是 ascii 编码还是使用多字节格式编码。

在前一种情况下,您可以只使用 .strlen

在后一种情况下,您需要找到每个字符的字节数。

strlen文档给出了一个如何做到这一点的例子:http://www.php.net/manual/en/function.strlen.php#72274


推荐