2017-07-27 30 views
0

該方法包含名稱中的一個點,並給我錯誤(DB.GetDocListIden),指定此方法的名稱的正確方法是什麼?肥皂PHP方法名稱包含一個點字符

$ result = $ client-> DB.GetDocListIdent($ params);

$wsdl = 'productos.wsdl'; 
 

 
try { 
 
    $client = new SoapClient($wsdl); 
 
    $params = ['user' => 'user', 'password' => 'pass']; 
 
    $result = $client->DB.GetDocListIdent($params); 
 
    $productsArray = $result->GetDocListResult->row; 
 

 
    var_dump($productsArray); 
 

 
    foreach($productsArray as $product){ 
 
     echo '<strong> producto: </strong>' . $product->ItemName; 
 
     echo '<br><br>'; 
 
    } 
 
} catch (SoapFault $fault) { 
 
    echo "Fault code: {$fault->faultcode}" . '<br>'; 
 
    echo "Fault string: {$fault->faultstring}" . '<br>'; 
 
    if ($client != null) { 
 
     $client = null; 
 
    } 
 
    exit(); 
 
} 
 
catch(Exception $ex){ 
 
    echo $ex->getMessage(); 
 
} 
 
$client = null;

+0

可以調用此方法或訪問'你code'之外?我的意思是,可以使用第三方工具(如SOA客戶端(Firefox)或其他)可靠地調用該方法嗎?否則,如果可能的話,您可能需要聯繫Web服務作者/開發團隊並要求提供消費者文檔。最後(不確定它會起作用),你可能想嘗試刪除「DB」。方法名稱的一部分。 –

+0

我從來沒有見過「GetDocListIdent」存在。你在哪裏找到這個功能? –

+0

我通過Duck Duck Go發現了這個。 PHP具有'call_user_func',並且通過將方法名稱放在{和}大括號內的雙引號內,可以重寫方法調用(可能)。你可以將你的代碼改爲'$ result = $ client - > {「DB.GetDocListIdent」} - >($ params);'Source:https://stackoverflow.com/questions/771036/php-equivalent-of-send -and-GETATTR –

回答

0

可以使用__soapCall,例如:

$client = new SoapClient(''); 
$client->__soapCall("DB.function", [args]);