【发布时间】:2020-07-20 04:59:54
【问题描述】:
你好,我可以知道如何检索字符串中的数据吗?
$url = 'test url';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$info = curl_getinfo($ch);
$response = curl_exec($ch);
curl_close ($ch);
echo 'Response: ';
echo gettype($response);
echo '<br>';
echo($response);
输出:
Response: string
TRANSACTION_ID=abc123
MERCHANT_ACC_NO=M213213
TXN_STATUS=A
TRAN_DATE=2020-07-20
CAPTURE_DATE=2020-07-20
SALES_DATE=2020-07-20
RESPONSE_CODE=1
RESPONSE_MESSAGE=Success
如您所见,代码的输出如上所示。这是我第一次遇到这种输出,因为通常我得到 json 作为输出。所以我的问题是我是否知道如何在输出中检索 RESPONSE_MESSAGE 或者我是否知道如何将输出转换为数组或 json 以便我可以轻松地检索数据。很抱歉问这个问题,我对这个 PHP 和 CURL 函数很陌生。
【问题讨论】:
-
而不是
echo($response);请您试试echo '<pre>'; var_dump($response);它将为您提供详细信息以及响应数据。 -
使用
explode("\n", $response)将字符串拆分为换行符处的数组。 -
如果响应是纯字符串,那么您可以使用
strstr()函数和explode()。喜欢:$message = explode("=",strstr($your_response_here, "RESPONSE_MESSAGE"))[1]。它将为您提供 RESPONSE_MESSAGE 中包含的字符串。 -
嗨,感谢您回复 AnkitSingh 和 Barmar。实际上我不想使用爆炸功能,但只要我得到数据就可以了,我想我会使用 Andreas 方法。再次感谢:D