Construire lien partenaire amazon


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Construire lien partenaire amazon

Message le Sam Oct 25, 2008 11:11

Petite question savoir si vous avez un lien sympa. Je cherche une méthode qui prenne en entrée un lien amazon (fr) et qui retourne ce lien avec mon ID partenaire.
Et si possible quand c'est une page d'un produit direct me créé le lien produit direct (qui rapporte plus).

J'ai déjà une méthode qui prends un lien et me le retourne avec mon tagId partenaire mais j'aimerais qqchose de plus poussé.

Si quelqu'un à ça sous le coude je prends! :)

Merci.


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Dim Oct 26, 2008 16:15

N'ayant rien trouvé j'ai fait une petite classe, première version tout chaude donc à tester plus en profondeur. Hésitez pas à faire des retours.
Ce genre de classe peut être ajoutée à un forum pour remplacer les liens postés par les utilisateurs.

Niveau cas : j'ai testé sur plusieurs pages mais tout ce qui pourrait être page https ou des cas auxquels je n'ai pas pensé ne sont pas géré.

Code: Tout sélectionner
LienPartenaire{
   
   public static $className = 'LienPartenaire';   
   
   public static $amazonId = 'metalorgie-21';

       public static $urlSite = 'URL_DE_VOTRE_SITE';
   
   
   /**
    * Remplace les liens vers des partenaire par le lien avec ID partenaire
    *
    * @param string $p_text
    * @param boolean $p_amazon   
    */
   public static function putPartenerLink($p_text, $p_amazon = true) {
      $out = array();
      $motif='#<a href="(.*?)"(.*?)>#is';
      preg_match_all($motif, $p_text, $out, PREG_PATTERN_ORDER);      
      foreach ($out[1] as $link) {         
         if (!utils_String::startswith($link,self::$urlSite)) {            
            // AMAZON         
              if (utils_String::startswith($link,"http://www.amazon.fr") ) {                 
                 $partnerLink = self::getAmazonPartnerLink($link);                                  
                 $p_text = str_replace($link,$partnerLink,$p_text);                 
              }
         }         
      }
      return $p_text;
   }
   
   
   /**
    * Retourne un lien amazon avec l'ID partenaire ajouté
    *
    * @param string $p_link
    * @return string
    */
   public static function getAmazonPartnerLink($p_link) {
      $retour = $p_link;
      // ID partenaire déjà présent?
      if (strpos($p_link, self::$amazonId) === false) {            
         // Lien produit ou autre?
         $posSep = strpos($p_link, "/dp/");
         if ($posSep !== false) {            
            // Récupère ID du produit
            $asin = substr($p_link,$posSep + 4);            
            $retour = 'http://www.amazon.fr/gp/product/' . $asin . '?ie=UTF8&tag=' . self::$amazonId;
         } else {            
            $retour = 'http://www.amazon.fr/gp/redirect.html?ie=UTF8&location=' . urlencode($p_link) . '&tag=' . self::$amazonId;
         }         
      }
      return $retour;
   }
}


Et le bout de code utilisé pour les startwith :
Code: Tout sélectionner
class utils_String {
         
   public static function startswith($hay, $needle) {
      return $needle === $hay or strpos($hay, $needle) === 0;
   }

   public static function endswith($hay, $needle) {
       return $needle === $hay or strpos(strrev($hay), strrev($needle)) === 0;
   }
}


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Current

  • Tester la validité d'un lien
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Calculer le ratio de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
  • Transformer des textes non cliquables en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité