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

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

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

привет

12
задан poldixd 18 August 2010 в 10:31
поделиться

5 ответов

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

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

if (function_exists('mb_strlen')) {
    $size = mb_strlen($string, '8bit');
} else {
    $size = strlen($string);
}
46
ответ дан 2 December 2019 в 03:07
поделиться
strlen()

перед помещением в mysql или в SQL:

LENGTH()

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

1
ответ дан 2 December 2019 в 03:07
поделиться

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

-3
ответ дан 2 December 2019 в 03:07
поделиться

SELECT length(field) FROM table

Из MySQL docs:

LENGTH(str)

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

7
ответ дан 2 December 2019 в 03:07
поделиться

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

0
ответ дан 2 December 2019 в 03:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: