从PHP中获取base64Binary的时间戳

时间:2010-09-23 15:18:35

标签: php soap base64 unpack

webservice以base64Binary格式返回时间戳字段。它在SOAP响应中看起来像这样:

<a:TimeStamp>AAAAAAMpI9Q=</a:TimeStamp>

PHP __soapCall,但是,b64_decode()s和我得到的二进制字符串看起来像')#▒'。如何从中获取实际时间戳?我试图解压缩('L')但它给了我Array([1] =&gt; 0)作为结果。真的是零,即1970-01-01还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

此测试程序:

$b = "AAAAAAMpI9Q=";
$ts = base64_decode($b);
print_r(array_map("ord", str_split($ts)));

输出:

Array
(
    [0] => 0
    [1] => 0
    [2] => 0
    [3] => 0
    [4] => 3
    [5] => 41
    [6] => 35
    [7] => 212
)

显示base64编码的字符串在解压缩时会为您提供8个字符的字符串。所以可能它代表一个64位整数,可能是有符号或无符号的,不,它不是零。

鉴于上面的值,它的值似乎是53027796 - 这是你所期待的吗?