为了账号安全,请及时绑定邮箱和手机立即绑定

用于 Paypal Payflow 响应的 PHP 正则表达式

用于 Paypal Payflow 响应的 PHP 正则表达式

PHP
皈依舞 2021-10-15 17:30:24
我正在使用 Paypal Payflow 进行付款,现在我无法提取 Paypal 响应。Paypal 响应以下面给出的格式发送RESULT=0&RESPMSG=Approved&SECURETOKEN[25]=Fj+1AFUWft0+I0CUFOKh5WA== &SECURETOKENID=9a9ea8208de1413abc3d60c86cb1f4c5方括号内的值[]是实际值的长度。例如,SECURETOKEN是一个参数,它的值为'Fj+1AFUWft0+I0CUFOKh5WA=='。长度为 25 个字符。如何从 PHP 的结果中提取每个参数及其对应的值。我对正则表达式不太好,我无法在网上找到任何解决方案。在这种情况下,用&和拆分=不起作用。
查看完整描述

2 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

该字符串看起来像一个 url,所以简单的方法是使用[parse_str()][1]它将给定的字符串转换为一个“格式良好”的数组。


重要的是,函数的返回值将存储在第二个参数中($keys在本例中)。


Ideone - 示例


$str = 'RESULT=0&RESPMSG=Approved&SECURETOKEN[25]=Fj+1AFUWft0+I0CUFOKh5WA== &SECURETOKENID=9a9ea8208de1413abc3d60c86cb1f4c5';

parse_str($str, $keys);


print_r($keys);

输出:


Array

(

    [RESULT] => 0

    [RESPMSG] => Approved

    [SECURETOKEN] => Array

        (

            [25] => Fj 1AFUWft0 I0CUFOKh5WA== 

        )


    [SECURETOKENID] => 9a9ea8208de1413abc3d60c86cb1f4c5

)


查看完整回答
反对 回复 2021-10-15
?
喵喔喔

TA贡献1735条经验 获得超5个赞

使用此答案将响应解析为数组是正确的开始。这是从数组中访问这些值的方法:


$str = 'RESULT=0&RESPMSG=Approved&SECURETOKEN[25]=Fj+1AFUWft0+I0CUFOKh5WA== &SECURETOKENID=9a9ea8208de1413abc3d60c86cb1f4c5';

parse_str( $str, $values );

现在,要获得您想要的值:


$tokens = $values['SECURETOKEN'];

// results in an array: ['25' => 'Fj+1AFUWft0+I0CUFOKh5WA=='];


$token = reset( $tokens ); // results in 'Fj+1AFUWft0+I0CUFOKh5WA=='

$length = key( $tokens ); // results in '25'


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信