函数变量-API响应preg_split结果并将创建的变量传递给新函数

时间:2018-12-10 13:17:58

标签: php function soap global-variables preg-split

希望您可以在这里为我提供帮助。我有点茫然:/

我有一个通过API将数据传递到服务器的功能。它发送响应。我需要分割输入的字符串并获取最终结果,并使其成为将来的函数可以使用的变量。

这是我成功传递数据后来自服务器的结果

  

CLIENTID = 101410; CLIENTREF = MZABOX2382; CONTACTID = 22975

这由

显示
echo($add_client_response->AddClientKYCResult);

由此,我只需要获取CLIENTID的编号,然后剔除其他所有内容即可。

到目前为止,我有这段代码无法正常工作

function AddClientKYCResult ( $data, $pilot ) {
$add_client_response = preg_split('/;/', $result['Result']);
$clientId = preg_split('/=/', $spl[0][0]);
$clientRef = preg_split('/=/', $spl[1][0]);
$contactId = preg_split('/=/', $spl[2][0]);
return $data;
echo($clientId);
}

有人可以帮忙吗?

TIA

2 个答案:

答案 0 :(得分:0)

手动地,可以使用explode以肮脏的方式完成此操作,或者使用strposstrlensubstr的通用堆栈更好一些。

<?PHP
    $string = "CLIENTID=101410;CLIENTREF=MZABOX2382;CONTACTID=22975";

    // approach #1 use explode
    // dirty, since it needs clientID to be the first parameter
    $split = explode(";",$string);
    $finalResult = str_replace("CLIENTID=","",$split[0]);
    var_dump($finalResult);

    // approach #2 use strpos
    // better if you want to handle errors
    $beginClientID = strpos($string,"CLIENTID=");
    $endClientID = strpos($string,";",$beginClientID);
    $clientID = substr($string,$beginClientID+strlen("CLIENTID="),$endClientID-($beginClientID+strlen("CLIENTID=")));
    var_dump($clientID);



?>

答案 1 :(得分:0)

要知道CLIENTID可以在字符串中的任何位置。

$apiResponse = $add_client_response->AddClientKYCResult;
//$apiResponse = "CLIENTID=101410;CLIENTREF=MZABOX2382;CONTACTID=22975";

$add_client_response = explode(";",$apiResponse);
$result = [];
foreach($add_client_response as $part) {
      $partArr = explode("=", $part);      
      $result[$partArr[0]] = $partArr[1];
}

$clientId = $result["CLIENTID"];
$clientRef = $result["CLIENTREF"];
$contactId = $result["CONTACTID"];
echo("clientId = $clientId<br/>");
echo("clientRef = $clientRef<br/>");
echo("contactId = $contactId");