Php 在变量中获取curl的结果

Php 在变量中获取curl的结果,php,curl,Php,Curl,我得到了一段代码,当我使用print$result时,它会像这样返回我的数据 ssl_card_number=41**********1111 ssl_exp_date=0213 ssl_amount=132.86 ssl_salestax=0.00 ssl_invoice_number=5351353519500 ssl_result=0 ssl_result_message=APPROVED ssl_txn_id=00000000-0000-0000-0000-00000000000 ssl

我得到了一段代码,当我使用print$result时,它会像这样返回我的数据

ssl_card_number=41**********1111
ssl_exp_date=0213
ssl_amount=132.86
ssl_salestax=0.00
ssl_invoice_number=5351353519500
ssl_result=0
ssl_result_message=APPROVED
ssl_txn_id=00000000-0000-0000-0000-00000000000
ssl_approval_code=123456
ssl_cvv2_response=P
ssl_avs_response=X
ssl_account_balance=0.00
ssl_txn_time=11/21/2012 12:38:20 PM
这是来自查看页面的源代码

页面本身显示为:

ssl_card_number=41**********1111 ssl_exp_date=0213 ssl_amount=132.86 ssl_salestax=0.00 ssl_invoice_number=8601353519473 ssl_result=0 ssl_result_message=APPROVED ssl_txn_id=00000000-0000-0000-0000-00000000000 ssl_approval_code=123456 ssl_cvv2_response=P ssl_avs_response=X ssl_account_balance=0.00 ssl_txn_time=11/21/2012 12:37:54 PM
我需要能够以更好的方式处理每一个“键”,并且不知道如何分解它们可能是一种可能的方法:

parse_str(preg_replace('#\s+(?=\w+=)#', '&', $result), $array);
var_dump($array);
$pairs = preg_split('#\s+(?=\w+=)#', $x);
foreach ($pairs as $pair) {
  list ($key, $value) = explode('=', $pair, 2);
  $array[$key] = $value; 
}
说明:
preg_replace
将把参数名称前的所有空格变成“&”符号-使此字符串类似于常规的GET请求url。然后,
parse_str
(专门为解析此类URL而创建的函数)将解析此字符串(作为第一个参数发送),并生成一个关联数组

事实上,如果每个param=value字符串从新行开始,您甚至不必在这里使用preg_replace<代码>str_replace(“\n”,“&”)应该可以做到这一点

另一种办法:

parse_str(preg_replace('#\s+(?=\w+=)#', '&', $result), $array);
var_dump($array);
$pairs = preg_split('#\s+(?=\w+=)#', $x);
foreach ($pairs as $pair) {
  list ($key, $value) = explode('=', $pair, 2);
  $array[$key] = $value; 
}

在这里,您首先创建一个“键值对”字符串数组,然后按
=
拆分每个元素:第一部分是键,第二部分是值。

您可以使用@raina77ow报告的正则表达式,也可以使用explodes(风险更大):