@@ 393-399 (lines=7) @@ | ||
390 | /// since the case() in which we are already did that |
|
391 | if ($name == 'STRING') { |
|
392 | $this->_xh['value'] = $this->_xh['ac']; |
|
393 | } elseif ($name == 'DATETIME.ISO8601') { |
|
394 | if (!preg_match('/^[0-9]{8}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/', $this->_xh['ac'])) { |
|
395 | error_log('XML-RPC: ' . __METHOD__ . ': invalid value received in DATETIME: ' . $this->_xh['ac']); |
|
396 | } |
|
397 | $this->_xh['vt'] = Value::$xmlrpcDateTime; |
|
398 | $this->_xh['value'] = $this->_xh['ac']; |
|
399 | } elseif ($name == 'BASE64') { |
|
400 | /// @todo check for failure of base64 decoding / catch warnings |
|
401 | $this->_xh['value'] = base64_decode($this->_xh['ac']); |
|
402 | } elseif ($name == 'BOOLEAN') { |
|
@@ 418-430 (lines=13) @@ | ||
415 | } |
|
416 | $this->_xh['value'] = false; |
|
417 | } |
|
418 | } elseif ($name == 'DOUBLE') { |
|
419 | // we have a DOUBLE |
|
420 | // we must check that only 0123456789-.<space> are characters here |
|
421 | // NOTE: regexp could be much stricter than this... |
|
422 | if (!preg_match('/^[+-eE0123456789 \t.]+$/', $this->_xh['ac'])) { |
|
423 | /// @todo: find a better way of throwing an error than this! |
|
424 | error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in DOUBLE: ' . $this->_xh['ac']); |
|
425 | $this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND'; |
|
426 | } else { |
|
427 | // it's ok, add it on |
|
428 | $this->_xh['value'] = (double)$this->_xh['ac']; |
|
429 | } |
|
430 | } else { |
|
431 | // we have an I4/I8/INT |
|
432 | // we must check that only 0123456789-<space> are characters here |
|
433 | if (!preg_match('/^[+-]?[0123456789 \t]+$/', $this->_xh['ac'])) { |
|
@@ 433-440 (lines=8) @@ | ||
430 | } else { |
|
431 | // we have an I4/I8/INT |
|
432 | // we must check that only 0123456789-<space> are characters here |
|
433 | if (!preg_match('/^[+-]?[0123456789 \t]+$/', $this->_xh['ac'])) { |
|
434 | /// @todo find a better way of throwing an error than this! |
|
435 | error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in INT: ' . $this->_xh['ac']); |
|
436 | $this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND'; |
|
437 | } else { |
|
438 | // it's ok, add it on |
|
439 | $this->_xh['value'] = (int)$this->_xh['ac']; |
|
440 | } |
|
441 | } |
|
442 | $this->_xh['lv'] = 3; // indicate we've found a value |
|
443 | break; |