【发布时间】:2019-11-27 16:42:39
【问题描述】:
我正在使用 Paypal Payflow 进行付款,现在我无法提取 Paypal 响应。
Paypal 响应以如下格式发送
RESULT=0&RESPMSG=Approved&SECURETOKEN[25]=Fj+1AFUWft0+I0CUFOKh5WA== &SECURETOKENID=9a9ea8208de1413abc3d60c86cb1f4c5
方括号[] 内的值是实际值的长度。例如,SECURETOKEN 是一个参数,其值为 'Fj+1AFUWft0+I0CUFOKh5WA=='。长度为 25 个字符。
如何从 PHP 的结果中提取每个参数及其对应的值。我对正则表达式不太擅长,我无法在线找到任何解决方案。
在这种情况下,& 和 = 的拆分不起作用。
【问题讨论】:
-
你可以使用
\[(\d+)\]=[^=]+,你能再发一些例子吗? -
@CodeManiac 这是 Paypal 在其网站上提供的示例之一
RESULT=0&RESPMSG=Approved&SECURETOKEN[25]=Fj+1AFUWft0+I0CUFOKh5WA== &SECURETOKENID=9a9ea8208de1413abc3d60c86cb1f4c5 -
@CodeManiac 字符串中的长度字段并不总是可用的。此外,如何使用此正则表达式获取名称值数组。感谢您的回复。
-
如果你的值字符串里面有
=,前一个将不起作用,因为它匹配到=,让我微调它,想出一个更好的,你能分享一下链接吗从您获得上述响应示例的地方