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

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

12 голосов
/ 18 августа 2010

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

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

привет

Ответы [ 5 ]

45 голосов
/ 18 августа 2010

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

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

if (function_exists('mb_strlen')) {
    $size = mb_strlen($string, '8bit');
} else {
    $size = strlen($string);
}
7 голосов
/ 18 августа 2010

ВЫБРАТЬ длину (поле) ИЗ таблицы

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

LENGTH (строка)

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

1 голос
/ 18 августа 2010
strlen()

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

LENGTH()

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

0 голосов
/ 18 августа 2010

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

0 голосов
/ 18 августа 2010

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

...