您好 如果您觉得这个问题很愚蠢,请提前抱歉。但我在我的购物车中集成了 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 支付系统。和 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 中的 preg match 查找 product_ids 的总数,然后运行循环。