0

您好 如果您觉得这个问题很愚蠢,请提前抱歉。但我在我的购物车中集成了 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 和名称。

4

2 回答 2

1

我以前没有使用过 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 )

希望这可以帮助。

于 2016-06-21T22:31:49.730 回答
0

这是答案

$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 中的 preg match 查找 product_ids 的总数,然后运行循环。

于 2016-06-24T22:15:43.800 回答