【问题标题】:How to retrieve certain data in string?如何检索字符串中的某些数据?
【发布时间】: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 '&lt;pre&gt;'; var_dump($response); 它将为您提供详细信息以及响应数据。
  • 使用explode("\n", $response) 将字符串拆分为换行符处的数组。
  • 如果响应是纯字符串,那么您可以使用strstr() 函数和explode()。喜欢:$message = explode("=",strstr($your_response_here, "RESPONSE_MESSAGE"))[1]。它将为您提供 RESPONSE_MESSAGE 中包含的字符串。
  • 嗨,感谢您回复 AnkitSingh 和 Barmar。实际上我不想使用爆炸功能,但只要我得到数据就可以了,我想我会使用 Andreas 方法。再次感谢:D

标签: php html curl


【解决方案1】:

您可以在 foreach 中分解为线条并将线条分解为各个部分。
编辑:我意识到“响应:”实际上是手动输出的。
将代码更改为从第二个项目切分数组。

foreach(array_slice(explode("\n", $str), 1) as $line){
    $temp = explode("=", $line);
    $res[$temp[0]] = $temp[1];
}

输出:

array(8) {
  ["TRANSACTION_ID"]=>
  string(6) "abc123"
  ["MERCHANT_ACC_NO"]=>
  string(7) "M213213"
  ["TXN_STATUS"]=>
  string(1) "A"
  ["TRAN_DATE"]=>
  string(10) "2020-07-20"
  ["CAPTURE_DATE"]=>
  string(10) "2020-07-20"
  ["SALES_DATE"]=>
  string(11) "2020-07-20 "
  ["RESPONSE_CODE"]=>
  string(1) "1"
  ["RESPONSE_MESSAGE"]=>
  string(7) "Success"
}

https://3v4l.org/evdMO

【讨论】:

  • 哇,先生,你真的帮了我大忙。非常感谢!
  • @Giorno 我看到销售日期中有一个额外的空格,不确定这是复制粘贴错误还是什么。但是您可以通过将行更改为$res[$temp[0]] = trim($temp[1]); 来清理这些东西
  • 再次感谢@Andreas 抽出宝贵时间帮助我完成我的项目。愿上帝保佑你:D
猜你喜欢
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多