以下是两个链接:
https://m.intl.example.com/detail/detail.html?id=562858877982&abtest=8&rn=ab2d6eacbccdbd3d59b70b38f26c496d&sid=403ef38782392a0c5298d9d7278d9005
https://item.example.com/item.htm?spm=a230r.1.14.33.a8e813ceFcDRaX&id=522804915538&ns=1&abbucket=9
我想在链接1中提取562858877982
中“id”的值,然后将链接2中“id”的值替换为链接1中的值。
所以链接2看起来像这样:
https://item.example.com/item.htm?spm=a230r.1.14.33.a8e813ceFcDRaX&id=562858877982&ns=1&abbucket=9
请注意,链接1中的id是动态的,这意味着它可以是任何数字。所以任务是得到“id”的值,而不是上面的例子id。
答案 0 :(得分:0)
您可以使用explode和parse_str,而不是parse_url;
如果您将数组作为parse_str的第二个参数传递,则可以使用id
作为数组键$result["id"]
来获取ID。
当您的ID可以是任意数字时,要显示sprintf与%d
的链接。
$url = "https://m.intl.example.com/detail/detail.html?id=562858877982&abtest=8&rn=ab2d6eacbccdbd3d59b70b38f26c496d&sid=403ef38782392a0c5298d9d7278d9005";
$result = [];
parse_str(parse_url($url, PHP_URL_QUERY), $result);
echo sprintf(
"https://item.example.com/item.htm?spm=a230r.1.14.33.a8e813ceFcDRaX&id=%d&ns=1&abbucket=9",
$result["id"]
);