如何从 2checkout 响应过程中获取所有产品名称和 ID

How to get all products name and ids from 2checkout response process

您好,如果您觉得这个问题很愚蠢,请提前致歉。但我在我的购物车中集成了 2checkout 支付系统。并以这种方式进行 2checkout 响应

www.mydomain.com/checkout.php/?middle_initial=&li_0_name=Jackets&li_0_productid=4&li_1_name=shirts&li_1_productid=2

现在我想获取所有产品的 ID 和名称。

我之前没有使用过 2checkout,但建议通过 preg_match_all 使用正则表达式从 url 中获取产品 ID,因为它是固定模式。我试过了,它抓取了 4 和 1 作为产品 ID:

$url = "www.mydomain.com/checkout.php/?middle_initial=&li_0_name=Jackets&li_0_productid=4&li_1_name=shirts&li_1_productid=2";
$matches = null;
preg_match_all('/li_\d+_productid=(?<productIds>\d+)/', $url, $matches);
print_r($matches['productIds']);

现在这将输出:

Array ( [0] => 4 [1] => 2 )

希望对您有所帮助。

答案在这里

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$matches = null;
preg_match_all('/li_\d+_productid=(?<productIds>\d+)/', $url, $matches);
print_r($matches['productIds']);
$count = count($matches['productIds']); 
for ($x = 0; $x < $count; $x++) {
echo $_GET['li_'.$x.'_productid'];
echo $_GET['li_'.$x.'_name'];
}

首先使用 url 中的预匹配找到 product_ids 的总数,然后 运行 循环。