我有一系列数据如下:
'有效'=>字符串'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(“=”)是否会导致==从字符串末尾消失?
如果是这样,那么分离和读取数组的更好方法是什么。或者它无论如何都没有区别?
先谢谢你们。
答案 0 :(得分:1)
您正在使用在数据中重复的分隔符进行爆炸。
以下是发生的事情:
a=svyndf124iasvfABas== -> array('a', 'svyndf124iasvfABas', '', '')
你可以通过用'!'替换数据中的'='来解决这个问题。或者另一个占位符,但真正的诀窍是简单地编码列表。我建议JSON。
然而,(根据您的评论),您似乎遇到的问题不仅仅是数据编码。