2011-11-02 95 views
0

我有数据的一个阵列,其如下所示:PHP爆炸 - 快速查询

'有效'=>字符串 '真'(长度= 4)

'test_status'= >字符串 '真'(长度= 4)

'TRANS_ID'=>字符串 'TRAN000102'(长度= 10)

'mpi_status_code'=>字符串 '200'(长度= 3)

“MP i_message '=>字符串 '付款人要求核实'(长度= 27)

'acs_url'=>串 的' https%3A%2F%2Fwww.secpay.com%2Fjava槽%2FACSSimulator%3Fpartner%3Dsecpay%26VAA %3DB ' (长度= 83)

'MD'=>字符串 '1158465348'(长度= 10)

'PaReq'=>串 ' eJxVUmFvgjAQ/b5fQfwBtBQwao4apybzA + O2S ++ kXJQNChaY7N/vqjBdE5J7d/d6716BeVfkzjeaOit1NPJcPprLJzicDOLqHVVrUEKMdZ0c0clS6vDCSTAO/WAykrBfvOFZQk + XxHYFsAESz6hTohsJiTo/b7YyEFMuAmA9hALNZiVDPvYDEXr8doDd0qCTAmWusNQ594BdIaiy1Y35kRMxBjYAaE0uT01TzRi7XC7ujZRpdFXptl/AbB3YXC++ tVFN93VZKuPD2tutXsX2EPPdcnHc3L8ImO2ANGlQCu 7R4cLh05kXznxScM1DUlghkmqkvgdQ2RmLx8pjBshag1oNmwwIsKtKjdRBTv7FkGKt5JKGmUwfnfW5zaqCCiTAFoDdF1q + WLtVQw5 + fK4F7dbFr1FkTb8m7YCMPPN8a2oPgFka69 + T9Q9O0b8f4ReyL7Xp” (长度= 452)

我使用PHP爆炸使用下面的代码到单独的arguements:

foreach ($args as $arg) { 
     list($key, $value) = explode("=", $arg); 
     $result_arr[$key] = $value; 
     } 

现在的问题是,有时当我发送该PaReq代码它回来无效。付款方的人说我在字符串的末尾缺少==。

使用explode(“=”)时,是否会导致==从字符串的末尾消失?

如果是这样,更好的方法来分离和读取数组。或者它没有影响吗?

在此先感谢你们。

+0

你究竟爆炸了什么?如果这是一个数组的'var_dump',请正确包含它 –

+0

我假设PaReq最后有一个'=='?我现在没有看到一个...... – Polynomial

+0

是的,根据付款点的人,当我得到这个错误时,它是因为我从字符串末尾遗漏了==,我的示例数组也没有包含这个。 – StuBlackett

回答

1

您正在使用数据中重复的分隔符进行爆炸。

这里发生的事情: '!'

a=svyndf124iasvfABas== -> array('a', 'svyndf124iasvfABas', '', '')

您可以通过在您的数据替换 '=' 破解这个或另一个占位符,但真正的技巧是简单地对列表进行编码。我建议JSON

但是,它似乎(根据您的意见),你有更深的问题,而不仅仅是你的数据编码。

+0

它只是一个,没有从你们说的东西只是增加了字符串,如果它太短 – StuBlackett