我有一个字符串
$data= ccnumber=6XgVr1EmHI7MoAJNQTMLoZ5IB7XyQ+PS5UMVxapCJT+hAlr7wm+QrIz768+fQ4zBM1QKB6dFXHvn7oR/dL3qMTwyf9Qgls7CvX/IFc+BVJcTwXKXEpD47XOoFFjJkpyGrGFb2TUMwNDkapd6XZWYM4uhXm3fPBoMLxG6G/Po9r39wBvG6szmao7jxkAZmaYMZ/BZXmC9l8YceavKs3cb7dpvW4858tDmUylZHCAcByqivTVj67VIfS1zudq1bDN6YhimrLKDtZx56lMerm6+NhaBclx0yEZxc66tVJYnE9CzUCYl+b4Q1OZyGCY31fz6DVA6KHWKHEkf7XGPgthhcQ==&cvv=111&name=sam
其中每个变量由&
分隔,如:
$data=ccnumber={}&cvv={}&name={}
我正在使用parse_str
将字符串解析为如下变量:
parse_str($data);
正确解析所有其他值,但我无法正确解析密文。什么可以解决这个问题?
答案 0 :(得分:1)
这是因为parse_str函数假设您正在解析URL的一部分,因此它会解码特定字符。在您的情况下,它应该将+
转换为空格。您可以尝试使用正则表达式:
preg_match('@ccnumber=(.*?)&@', $data, $m);
$cipher = $m[1];