我有以下功能,可以从以下格式的亚马逊 URL 中提取数据。
$str = 'http://www.amazon.com/The-Philppines-Handbook-Information/dp/B00513G3S4%3FSubscriptionId%3DAKIAJHD5HZTGWIGUKABQ%26tag%3Dtestittag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00513G3S4';
function extract_data($str) {
$regex = '/http:\/\/www.amazon.com\/([\w-]+\/)?(dp|gp\/product)\/(tag\w+)?(\w+\/)?(\w{10})/';
if(preg_match_all($regex, $str, $matches, PREG_PATTERN_ORDER)) {
var_dump($matches[3]);
var_dump($matches[5]);
} else return -1;
}
extract_data($str);
我正在寻找 ASIN 和标签信息。我能够获取 ASIN,但在获取标签时遇到了麻烦。这是 $regex 中的第三个匹配项(第五个是 ASIN)。请让我知道我做错了什么。
我得到以下输出:
array(1) {
[0]=>
string(0) ""
}
array(1) {
[0]=>
string(10) "B00513G3S4"
}
第三场比赛返回空,即不匹配任何内容。如何匹配标签testittag-20
?