我正在开发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
。
你能否提出一种非常简单的方法来实现我的要求?
答案 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