希望您可以在这里为我提供帮助。我有点茫然:/
我有一个通过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
答案 0 :(得分:0)
手动地,可以使用explode
以肮脏的方式完成此操作,或者使用strpos
,strlen
和substr
的通用堆栈更好一些。
<?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");