2016-10-12 1 views
0

J'utilise une fonction pour la redirection des liens externes dans mon site WebComment détecter "?" dans les liens du site pour la redirection?

Comment fonctionne cette fonction: - elle détectera tous les liens nearbuy.com et appliquera une règle de redirection, puis sera redirigée.

Par exemple: - nearbuy.com est un domaine pour ajouter cette fonction préfixe avant nearbuy.com URL externe i.e. http://tracking.nearbuy.com/aff_c?offer_id=9&aff_id=479&url=

Puis paramètre http://www.nearbuy.com et url pour le faire fonctionner.

Ce que je veux faire: - "?"

1) Si nearbuy.com lien a déjà alors il utilisera "&"

2) Si le lien nearbuy.com n'a pas "?" alors il utilisera "?"

Quel est le problème: -

J'utilise ci-dessous Méthode mais sa non-détection « ? » dans les liens et ajouter "?" à nouveau en fin de liens tandis que la redirection qui est le problème

Voici le code: -

if(stripos($url, "nearbuy.com")) { 
    $url_args = parse_url($url); 
    $url_params = "?utm_source=nap&utm_medium=cps&utm_campaign={affiliate_id}"; 
     if(!empty($durl["query"])) {  
      $url_params = "&utm_source=nap&utm_medium=cps&utm_campaign={affiliate_id}"; 
     } 
    $redirect_url = "http://tracking.nearbuy.com/aff_c?offer_id=9&aff_id=479&url=" . urlencode($url . $url_params); 
     goto redirect_to_uri; 
    break; 
} 
+0

Ce n'est pas la meilleure fonction, mais vous devez utiliser http://php.net/manual/fr/function.parse-url.php Alternative vous pouvez utiliser ce paquet pour les opérations URL: https://github.com/thephpleague/url – Tomahock

Répondre

0

Vous pouvez utiliser parse_url et faire quelque chose comme:

$yourQueryParams = [ 
    'offer_id' => 9, 
    'aff_id' => 479, 
]; 

$url .= (parse_url($url, PHP_URL_QUERY) ? '&' : '?') . http_build_query($yourQueryParams); 

// redirect with your query params 
header("Location: $url"); 
die(); 
+0

Merci :-) ... –