来自字符串的文件大小

发布于 2024-09-14 20:03:11 字数 156 浏览 8 评论 0原文

我如何从 php 中的字符串中获取“文件大小”?

我将字符串作为 blob 放入 mysql 数据库中,并且需要存储 blob 的大小。我的解决方案是创建一个临时文件并将字符串放入临时文件中。现在我可以从“字符串”中获取文件大小。但这个解决方案不好......

问候

how can i get the "filesize" from a string in php?

I put the string in a mysql database as a blob and i need to store the size of the blob. My solution was to create a temp file and put the string into the temp file. now i can get the filesize from the "string". but that solution is not good...

greetings

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

孤城病女 2024-09-21 20:03:12

这取决于。如果您启用了 mbstring 函数重载,则唯一有效的调用将是为 mb_strlen($string, '8bit');。如果未启用,strlen($string) 也可以正常工作。

因此,您可以像这样处理这两种情况:

if (function_exists('mb_strlen')) {
    $size = mb_strlen($string, '8bit');
} else {
    $size = strlen($string);
}

It depends. If you have mbstring function overloading enabled, the only call that will work will be mb_strlen($string, '8bit');. If it's not enabled, strlen($string) will work fine as well.

So, you can handle both cases like this:

if (function_exists('mb_strlen')) {
    $size = mb_strlen($string, '8bit');
} else {
    $size = strlen($string);
}
失与倦" 2024-09-21 20:03:12

SELECT length(field) FROM table

来自 MySQL 文档:

长度(字符串)

返回字符串str的长度,
以字节为单位。一个多字节
字符算作多个字节。
这意味着对于一个字符串
包含五个两字节字符,
LENGTH() 返回 10,而
CHAR_LENGTH() 返回 5。

SELECT length(field) FROM table

From the MySQL docs:

LENGTH(str)

Returns the length of the string str,
measured in bytes. A multi-byte
character counts as multiple bytes.
This means that for a string
containing five two-byte characters,
LENGTH() returns 10, whereas
CHAR_LENGTH() returns 5.

南城旧梦 2024-09-21 20:03:12
strlen()

在将其放入 mysql 或 SQL 中之前:

LENGTH()

请注意,长度可能会因字符集而异。如果你想要以字节为单位的实际长度,请使用 strlen(),如果你想要有字符计数,请使用 mb_strlen() (例如,如果你有 utf-8 编码)

strlen()

before putting it into mysql, or in SQL:

LENGTH()

Notice that lenght can be various depending on character set. If you want to have real length in bytes use strlen(), if you want to have character count use mb_strlen() (if you have utf-8 encoding for example)

流心雨 2024-09-21 20:03:12

如果您存储的只是字符串,那么大小应该是字符串的长度乘以字符集中的字节数。因此对于 Unicode 来说,这将是 2*strlen($string)。

If all you are storing is the string, then the size should be the length of your string times the number of bytes in the charset. So for Unicode that would be 2*strlen($string).

携君以终年 2024-09-21 20:03:12

strlen($string) 是查看字符串大小 (MB) 的最佳示例

strlen() 实际上并不返回字符串中的元素数量,而是返回字符串中的字节数

示例:
echo(strlen('a■')); 将返回 4,因为黑色方形字符由 3 个字节组成,而“a”字符由 1 个字节组成。

strlen($string) is the best example for viewing the size(MB) of a string

strlen() doesnt actually return the number of elements in a string, but the number of bytes in it

example:
echo(strlen('a■')); will return 4, because the black square character is made of 3 bytes, and the 'a' character is made of one.

溺深海 2024-09-21 20:03:12

使用 mb_strlen() 这样你就可以告诉它什么类型编码字符串使用(如果有的话)来获取它的大小(以字节为单位)。

use mb_strlen() as then you can tell it what type of encoding the string uses (if any) to get the size of it in bytes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文