根据单词重定向到联盟链接

时间:2014-06-16 23:06:48

标签: php amazon-web-services affiliate

我正在开发PHP代码,用于根据网址中的字词自动将网址重定向到联属网址。

这是我正在使用的代码:

if (stripos($mylink, "amazon.in") > 0) {
    if (strpos($mylink, "?") > 0) {
        $tmp = $mylink."&affiliate_id";
    } else {
        $tmp = $mylink."?affiliate_id";
    }

    $loc = "Location:".$tmp;
    header($loc);
    exit();
}

但问题是,当亚马逊网址如下:http://www.amazon.in/English-Movies-TV-Shows/b/ref=sa_menu_movies_all_hindi?ie=UTF8&node=4068584031时,它会添加会员ID,如下所示:ie=UTF8&affiliate_id(它会自动删除节点及其值),但我希望它像:ie=UTF8&node=4068584031&affiliate_id

这意味着如果它是Amazon链接,我每次都需要在URL的末尾添加&affiliate_id

实际上我只想实现以下简单的事情:如果网址没有?,我需要放置?affiliateid,如果网址有?我只需要在最后添加&affiliateid

你能否提出一种非常简单的方法来实现我的要求?

1 个答案:

答案 0 :(得分:1)

让PHP为你做字符串解析。让我们说你的联盟会员ID是XYWZ。

if (strpos($mylink, "amazon.in") !== 0) {
    $urlarray=parse_url($mylink);
    $urlarray['query']='affiliate_id=XYWZ&'.$urlarray['query'];
    $newurl= $urlarray['scheme'].'://'.$urlarray['host'].$urlarray['path'].'?'.$urlarray['query'];

    echo $newurl;
}

将输出

http://www.amazon.in/English-Movies-TV-Shows/b/ref=sa_menu_movies_all_hindi?affiliate_id=XYWZ&ie=UTF8&node=4068584031

见?如果有问号,我也不用担心。它将在parse_url;

的输出中被删除

编辑:使用$ mylink而不是$ theurl