2011-11-02 93 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