2014-12-25 2 views
2

MySQL을 사용하는 플레이어의 인벤토리를 저장하는 Minecraft Bukkit Plugin을 설치했습니다.blob을 배열로 변환

내 문제는 내가 웹 사이트에 항목을 표시하도록하지만,이 "BLOB"형식이 있습니다

표는 다음과 같습니다. 제 생각에 그들은 블록 ID 여야합니다 ("BLOB"을 img로 변환하는 메소드 만 찾았습니다).

은 "한방울의"형식은 다음과 같습니다

$conn = new mysqli("$host", "$user", "$pass", "auction"); 
$sql = "SELECT content FROM inventory"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()) { 
    echo base64_encode($row["content"]); 
} 

솔루션 :이 코드를 웹 사이트에 표시 할 때

편집

을 다음 문자열과 같습니다 :

H4sIAAAAAAAAAIuuViqpLEhVslJy9vcNcAwOVqrVgQs5egaNckc2NxYAYPN3OyECAAA=

+1

나를 위해 작동 나던 :(당신은 MIME 타입을 알 필요가 – Avijit

+1

를 살펴 보자 접견. –

+0

을이 http://phppot.com/php/mysql-blob-using-php/ – Mouser

답변

0

블록의 ID는 0에서 255 사이입니다. 블록을 확장하지 않으면 모든 바이트가 블록을 나타내는 것입니다.

바이트 단위로 데이터를 읽고 모든 바이트를 블록 ID를 나타내는 숫자로 변환해야합니다. 일단 그 ID를 기반으로 적절한 그림 만 표시하면됩니다. 방법

This Question 설명 : 실제로 두 바이트로 ID 시스템을 확장 이벤트에

, 당신은 0 65535이

업데이트 사이의 숫자로 매 2 바이트를 변환해야합니다 PHP로 바이너리 데이터를 읽으십시오. 바이트 배열로 변환 한 후에는 모든 바이트를 int로 유형 변환하면됩니다.

0

이제 알겠지만,이 이상한 문자열은 어떻게됩니까? Minecraft는 "NBT 디코딩"을 사용합니다. 여기있는 사람은 어떻게 알 수 있습니까? nbt로 디코딩/인코딩 할 수 있습니까? BLOB 아무것도 할 수 있기 때문에 는