function bdec($s) { switch ($s[0]) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': return bdec_str($s); case 'l': return bdec_list($s); case 'd': return bdec_dict($s); case 'i': return bdec_int($s); } }
function bdec($s) { if (preg_match('/^(\\d+):/', $s, $m)) { $l = $m[1]; $pl = strlen($l) + 1; $v = substr($s, $pl, $l); $ss = substr($s, 0, $pl + $l); if (strlen($v) != $l) { return; } return array('type' => "string", 'value' => $v, 'strlen' => strlen($ss), 'string' => $ss); } if (preg_match('/^i(-{0,1}\\d+)e/', $s, $m)) { $v = $m[1]; $ss = "i" . $v . "e"; if ($v === "-0") { return; } if ($v[0] == "0" && strlen($v) != 1) { return; } return array('type' => "integer", 'value' => $v, 'strlen' => strlen($ss), 'string' => $ss); } switch ($s[0]) { case "l": return bdec_list($s); case "d": return bdec_dict($s); default: return; } }