首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的世界脚本,将记住服务器中每个人拥有的所有物品

我的世界脚本,将记住服务器中每个人拥有的所有物品
EN

Stack Overflow用户
提问于 2011-08-24 07:17:42
回答 1查看 1K关注 0票数 1

我有一个我的世界服务器,需要备份所有项目的人有,我希望通过编辑的.dat文件在世界/播放器。在这个文件中,有.dat文件,它们的名称是每个玩家的用户名。当我用Notepad++打开它时,它显示了这样的胡言乱语:

普通的记事本会给我这样的提示:

代码语言:javascript
复制
‹       ãb``bà
ÎIM-ÉÌM-b`àd`óÍ/ÉÌÏcc```¶ÛqæÀÉEÚ“öob=Ô£i×ý‰Ù5S  #‡ž{Q~i^
#‡GiQ   H?È46ÔÄœ’Œÿÿ™8]€byÅ@Àf¥˜3‹u88=óÊRóJò‹*AœÌùÅ`û˜Û„¥<^$çà ’apˆßñM&ðБŽ%%    ‰ÉÙ[€ÖƒÝœ™—4–Å-³(õÿV·Äœ—Ìâ’ļäTˆÉAù%‰ ï°‚\pð²±’ïÌ9L@§¥&–d€M“d  íl+  

我听说这个文件是用Gzipped压缩的。这就是为什么它是这样的吗?我怎么才能解码它,这样我才能真正地读懂它。我需要从PHP脚本中解密它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-24 07:55:43

你需要找出它真正的压缩是什么,但是尝试用这个(Gzip)打开文件:

代码语言:javascript
复制
<?php
$fp = fopen('compress.zlib://yourfile.dat', 'r');
if( $fp ){
    while(!feof($fp) ){
        echo fread($fp, 2048);
    }
    fclose($fp);
}
?> 

有关更多信息,请查看http://www.php.net/manual/en/wrappers.compression.php

编辑:你可能想试试这个:

代码语言:javascript
复制
<?php
$dat = file_get_contents('yourfile.dat');
echo gzdecoder($dat);

function gzdecoder($d){
    $f=ord(substr($d,3,1));
    $h=10;$e=0;
    if($f&4){
        $e=unpack('v',substr($d,10,2));
        $e=$e[1];$h+=2+$e;
    }
    if($f&8){
        $h=strpos($d,chr(0),$h)+1;
    }
    if($f&16){
        $h=strpos($d,chr(0),$h)+1;
    }
    if($f&2){
        $h+=2;
    }
    $u = gzinflate(substr($d,$h));
    if($u===FALSE){
        $u=$d;
    }
    return $u;
}
?>

它也不是encrypted,而是compressed。;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7168673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档