diff --git a/php/classes/VOTableMgr.php b/php/classes/VOTableMgr.php index c0663c3..10414ca 100644 --- a/php/classes/VOTableMgr.php +++ b/php/classes/VOTableMgr.php @@ -302,45 +302,49 @@ class VOTableMgr { case 'boolean': case 'unsignedByte': $b = $substr; - $res = $b == "T" || $b == "t" || $b == "1"; + $res = $b == 'T' || $b == 't' || $b == '1'; break; case 'char': - $res = $row_size!=0 ? utf8_encode($substr) : NULL; + $res = $row_size !=0 ? utf8_encode($substr) : NULL; case 'unicodeChar': - $res = $row_size!=0 ? utf8_encode(str_replace("\0", "", $substr)) : NULL; + $res = $row_size !=0 ? utf8_encode(str_replace("\0", '', $substr)) : NULL; break; case 'short': - $res = unpack("ss", $substr)["s"]; + $res = unpack('ss', $substr)['s']; + $res = is_nan($res) ? NULL : $res; break; case 'int': - $res = unpack("Ns", $substr)["s"]; + $res = unpack('Ns', $substr)['s']; + $res = is_nan($res) ? NULL : $res; break; case 'long': - $res = unpack("Js", $substr)["s"]; // /!\ J -> PHP 5.6 only + $res = unpack('Js', $substr)['s']; // /!\ J -> PHP 5.6 only + $res = is_nan($res) ? NULL : $res; break; case 'float': - $res = unpack("fs", $substr)["s"]; - + $res = unpack('fs', $substr)['s']; // If machine is little endian: if($this->is_little_endian) { - $res = unpack('f1f', strrev(pack('f', $res)))["f"]; + $res = unpack('f1f', strrev(pack('f', $res)))['f']; } + $res = is_nan($res) ? NULL : $res; break; case 'double': - $res = unpack("ds", $substr)["s"]; - + $res = unpack('ds', $substr)['s']; // If machine is little endian: if($this->is_little_endian) { - $res = unpack('d1d', strrev(pack('d', $res)))["d"]; + $res = unpack('d1d', strrev(pack('d', $res)))['d']; } + $res = is_nan($res) ? NULL : $res; break; default: $res = NULL; - error_log("Unknown character: $data_type"); + error_log("Unknown datatype: $data_type"); break; } $this->c+=$row_size; - return (string)$res; + return $res; + // return (string)$res; } diff --git a/php/epntap.php b/php/epntap.php index 6e84db2..2e3c1ef 100644 --- a/php/epntap.php +++ b/php/epntap.php @@ -165,12 +165,10 @@ function getGranules() { $names = ['dataproduct_type' => 'Type', 'access_estsize' => 'Size']; // default: pretty printed key name $renderers = ['dataproduct_type' => 'type', 'time_min' => 'date', 'time_max' => 'date', 'access_estsize' => 'size', 'thumbnail_url' => 'img', 'access_url' => 'link', 'access_format' => 'format']; // default: text $flexs = ['granule_uid' => 2]; // default: 1 - // $types = ['boolean' => , 'integer']; // TODO see http://php.net/manual/fr/function.gettype.php $fields = array(); $columns = array(); foreach($response['data'][0] as $key => $value) { - error_log('Granule ' . $key . ' is ' . gettype($value)); $fields[] = ['name' => $key, 'type' => 'string']; $columns[] = [ 'dataIndex' => $key, -- libgit2 0.21.2