размер файла из строки

как я могу получить «размер файла» из строки в php?

Я поместил строку в базу данных mysql как blob, и мне нужно сохранить размер blob. Моим решением было создать временный файл и поместить строку в файл temp. теперь я могу получить размер файла из «строки». но это решение не очень хорошо …

Привет

Это зависит. Если включена перегрузка функции mbstring , единственным вызовом, который будет работать, будет mb_strlen($string, '8bit'); , Если он не включен, strlen($string) будет работать отлично.

Таким образом, вы можете обрабатывать оба случая следующим образом:

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

SELECT length (поле) FROM table

Из документов MySQL :

ДЛИНА (ул)

Возвращает длину строки str, измеренную в байтах. Многобайтовый символ считается как несколько байтов. Это означает, что для строки, содержащей пять двухбайтовых символов, LENGTH () возвращает 10, тогда как CHAR_LENGTH () возвращает 5.

 strlen() 

перед тем, как поместить его в mysql или в SQL:

 LENGTH() 

Обратите внимание, что длина может быть различной в зависимости от набора символов. Если вы хотите иметь реальную длину в байтах, используйте strlen (), если вы хотите, чтобы число символов использовало mb_strlen () (если у вас есть кодировка utf-8, например)

Если все, что вы храните, это строка, то размер должен быть длиной вашей строки, умноженной на количество байтов в кодировке. Итак, для Unicode это будет 2 * strlen ($ string).

используйте mb_strlen (), как тогда вы можете сказать, какой тип кодировки использует строка (если есть), чтобы получить размер ее в байтах.