PHP爆炸 - 快速查询

时间:2011-11-02 09:27:56

标签: php explode

我有一系列数据如下:

  

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

     

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

     

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

     

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

     

'mpi_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 ++ tVFN93VZKuPD2tutXsX2EPPdcnHc3L8ImO2ANGlQCu7R4cLh05kXznxScM1DUlghkmqkvgdQ2RmLx8pjBshag1oNmwwIsKtKjdRBTv7FkGKt5JKGmUwfnfW5zaqCCiTAFoDdF1q + WLtVQw5 + fK4F7dbFr1FkTb8m7YCMPPN8a2oPgFka69 + T9Q9O0b8f4ReyL7Xp'   (长度= 452)

我正在使用PHP Explode使用以下代码分隔争论:

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

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

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

如果是这样,那么分离和读取数组的更好方法是什么。或者它无论如何都没有区别?

先谢谢你们。

1 个答案:

答案 0 :(得分:1)

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

以下是发生的事情:

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

你可以通过用'!'替换数据中的'='来解决这个问题。或者另一个占位符,但真正的诀窍是简单地编码列表。我建议JSON

然而,(根据您的评论),您似乎遇到的问题不仅仅是数据编码。