2010-09-23 4 views
0

Un webservice renvoie un champ d'horodatage au format base64Binary. Il ressemble à ceci en réponse SOAP:Récupère l'horodatage de base64Binary dans PHP

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

PHP __soapCall, cependant, b64_decode() s et j'obtenir une chaîne binaire ressemblant ') # ▒'. Comment puis-je obtenir l'horodatage actuel? J'ai essayé de décompresser ('L') mais cela me donne Array ([1] => 0) en conséquence. Y a-t-il vraiment zéro, c'est-à-dire 1970-01-01 ou ai-je manqué quelque chose?

Répondre

2

Ce programme de test:

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

sorties:

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

montrant que la chaîne base64-vous donne une chaîne de 8 caractères, lors du déballage. Donc, il s'agit vraisemblablement d'un entier de 64 bits, qui peut être signé ou non signé, et non, ce n'est pas zéro.

Étant donné les valeurs ci-dessus, il semble que la valeur soit 53027796 - c'est ce que vous attendiez?

Questions connexes