2014-11-07 2 views
0

암호화 된 이미지가 있고 저장하기 전에 얼마나 많은 공간이 필요한지 알고 싶습니다. strlen($img) 또는 mb_strlen($img)을 통해 문자 수를 얻을 수 있지만 16KiB (또는 KB)과 같은 숫자를 얻고 싶습니다.PHP에서 문자열의 바이트 크기

그런 다음 blob 형식의 MySQL 데이터베이스에 문자열을 저장합니다. 여기서 PhpMyAdmin을 사용하여 크기를 볼 수 있습니다.

편집 내가 문자열이 문자로 저장되지 않습니다 내 MySQL 데이터베이스에 표시되는 바이트 크기 (와 다른 가치를 (내가 원하는) 문자열의 바이트 크기를 얻을 수 strlen 함수를 사용하는 경우 만 블로그로, 이진 의미). 어떻게 이럴 수있어? 그리고 어떻게하면 데이터베이스에 문자열을 저장할 때 이진 크기가 얼마나 큰지 알아낼 수 있습니다. 나는 단순히 MySQL의 명령

INSERT INTO table (content, bla) VALUES ($string, bla); 와 문자열을 저장

- 내 데이터베이스 내에서 볼 때

이 지금은 나에게 크기 등을 표시합니다 (완전 정확하지 않지만, 예를 목적으로이 때 올바른이 작동) 내가 내 자신을 조사 할 것

내가 $string을 가지고 거기에 나 strlen 할 때, 그것은 (KB 같이 비트에서 동일하지 않음) 240000 뭔가를 반환하지만 3백15킬로바이트 ...

+0

@CurtisMattoon 아니, 아니에요, 나는 행복 할 것입니다. 그러나 이것은 파일/문자열의 크기를 알 필요가 있지만 크기 자체를 찾고 싶습니다. – JSHelp

+0

OP가 중복 된 것으로 표시하려는 경우 –

답변

1

이것은 본질적으로 Dany의 답변과 동일하지만 조금 더 간결합니다.

function human_filesize($bytes, $decimals = 2) { 
    $size = array('B','kB','MB','GB','TB','PB','EB','ZB','YB'); 
    $factor = floor((strlen($bytes) - 1)/3); 
    return sprintf("%.{$decimals}f", $bytes/pow(1024, $factor)) . @$size[$factor]; 
} 

echo human_filesize(filesize($filename)); 

출처 : 해결책이 있다면 http://jeffreysambells.com/2012/10/25/human-readable-filesize-php

+0

지금 당장, 잘못 변환했습니다. 나는 이것을 입력했고 지금은 DB와 같은 것입니다. 감사. – JSHelp