Beispiel #1
0
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;
}
Beispiel #2
0
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;
}