来自字符串的文件大小
我如何从 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这取决于。如果您启用了 mbstring 函数重载,则唯一有效的调用将是为 mb_strlen($string, '8bit');。如果未启用,
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:
SELECT length(field) FROM table
来自 MySQL 文档:
SELECT length(field) FROM table
From the MySQL docs:
在将其放入 mysql 或 SQL 中之前:
请注意,长度可能会因字符集而异。如果你想要以字节为单位的实际长度,请使用 strlen(),如果你想要有字符计数,请使用 mb_strlen() (例如,如果你有 utf-8 编码)
before putting it into mysql, or in SQL:
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)
如果您存储的只是字符串,那么大小应该是字符串的长度乘以字符集中的字节数。因此对于 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).
strlen($string)
是查看字符串大小 (MB) 的最佳示例strlen() 实际上并不返回字符串中的元素数量,而是返回字符串中的字节数
示例:
echo(strlen('a■'));
将返回 4,因为黑色方形字符由 3 个字节组成,而“a”字符由 1 个字节组成。strlen($string)
is the best example for viewing the size(MB) of a stringstrlen() 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.使用 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.