function queryRemoteServer($url, $method, $params, $toArray = true) { global $config; include_once 'SOAP/Client.php'; $client = new SOAP_Client($url); if (!$config['utf8']) { $params = utf8_encode_recursive($params); } $response = $client->call($method, $params, array('namespace' => 'urn:DILPSQuery')); if (is_a($response, 'SOAP_Fault')) { $fault = $response->getFault(); $response = new stdClass(); $err = new stdClass(); $err->error = var_export($fault, true); $response->result = $err; } if ($toArray) { $response = _stdclass2array($response); if (!$config['utf8']) { $response = utf8_decode_recursive($response); } $result = $response['result']; } else { $result = $response->result; } return $result; }
function utf8_decode_recursive($array) { foreach ($array as $key => $val) { if (is_string($val)) { $array[$key] = utf8_decode($val); } elseif (is_array($val)) { $array[$key] = utf8_decode_recursive($val); } } return $array; }