@@ 286-292 (lines=7) @@ | ||
283 | /// since the case() in which we are already did that |
|
284 | if ($name == 'STRING') { |
|
285 | $this->_xh['value'] = $this->_xh['ac']; |
|
286 | } elseif ($name == 'DATETIME.ISO8601') { |
|
287 | if (!preg_match('/^[0-9]{8}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/', $this->_xh['ac'])) { |
|
288 | error_log('XML-RPC: ' . __METHOD__ . ': invalid value received in DATETIME: ' . $this->_xh['ac']); |
|
289 | } |
|
290 | $this->_xh['vt'] = Value::$xmlrpcDateTime; |
|
291 | $this->_xh['value'] = $this->_xh['ac']; |
|
292 | } elseif ($name == 'BASE64') { |
|
293 | /// @todo check for failure of base64 decoding / catch warnings |
|
294 | $this->_xh['value'] = base64_decode($this->_xh['ac']); |
|
295 | } elseif ($name == 'BOOLEAN') { |
|
@@ 311-323 (lines=13) @@ | ||
308 | } |
|
309 | $this->_xh['value'] = false; |
|
310 | } |
|
311 | } elseif ($name == 'DOUBLE') { |
|
312 | // we have a DOUBLE |
|
313 | // we must check that only 0123456789-.<space> are characters here |
|
314 | // NOTE: regexp could be much stricter than this... |
|
315 | if (!preg_match('/^[+-eE0123456789 \t.]+$/', $this->_xh['ac'])) { |
|
316 | /// @todo: find a better way of throwing an error than this! |
|
317 | error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in DOUBLE: ' . $this->_xh['ac']); |
|
318 | $this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND'; |
|
319 | } else { |
|
320 | // it's ok, add it on |
|
321 | $this->_xh['value'] = (double)$this->_xh['ac']; |
|
322 | } |
|
323 | } else { |
|
324 | // we have an I4/I8/INT |
|
325 | // we must check that only 0123456789-<space> are characters here |
|
326 | if (!preg_match('/^[+-]?[0123456789 \t]+$/', $this->_xh['ac'])) { |
|
@@ 326-333 (lines=8) @@ | ||
323 | } else { |
|
324 | // we have an I4/I8/INT |
|
325 | // we must check that only 0123456789-<space> are characters here |
|
326 | if (!preg_match('/^[+-]?[0123456789 \t]+$/', $this->_xh['ac'])) { |
|
327 | /// @todo find a better way of throwing an error than this! |
|
328 | error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in INT: ' . $this->_xh['ac']); |
|
329 | $this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND'; |
|
330 | } else { |
|
331 | // it's ok, add it on |
|
332 | $this->_xh['value'] = (int)$this->_xh['ac']; |
|
333 | } |
|
334 | } |
|
335 | $this->_xh['lv'] = 3; // indicate we've found a value |
|
336 | break; |