Script php/mysql de contrôle des échanges de liens

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


dadovb
WRInaute accro
WRInaute accro
 
Messages: 2038
Inscription: Mar Nov 22, 2005 9:50

Script php/mysql de contrôle des échanges de liens

Message le Ven Mai 30, 2008 17:37

Bonjour à tous,

Actuellement en pleine campagne de netlinking, je me suis fendu d'un petit script de contrôle des échanges de liens. Parce que bon, ça a du arriver à tout le monde de mettre en place des échanges de liens qui comme par hasard disparaissent au bout de quelques semaines... :(

C'est du bon vieux php/mysql. Il faut une table ("liens") dans la BD avec les champs suivants :

reference : identifiant unique du lien
lien : page du site partenaire où est censé apparaitre le lien
pagerank : valeur de la petite barre verte de la google toolbar (à titre purement indicatif, bien sur :wink: )
site : si vous gérez plusieurs sites, vous pouvez les différencier dans ce champ

Perso, je la remplis tranquillement à la main à chaque fois qu'un nouvel échange est en place.

Côté PHP :

La fonction PHP qui détecte si au moins un lien vers le site $site est présent sur la page $url.
IMPORTANT : la fonction renvoie l'anchor text du lien s'il est trouvé
IMPORTANT : vous avez besoin du framework PEAR (http://pear.php.net/)


Code: Tout sélectionner
function controlUrl($url,$site){
   
   require_once "HTTP/Request.php";
   
   $req =& new HTTP_Request($url);
   $req->addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
   
   $response = $req->sendRequest();
   
   if (PEAR::isError($response)) {
       return false;
   } else {
    
        $reponse   = $req->getResponseBody();
        // supprimer les retour à la ligne d'un texte
      $reponse   = str_replace(CHR(10)," ",$reponse);
      // et celle là aussi :
      $reponse   = str_replace(CHR(13)," ",$reponse);         
    
      if(preg_match('$<[Aa](.*?)[href|HREF]=["|\']http://'.$site.'(.*?)["|\'](.*?)>(.*?)</[Aa]>$',$reponse,$tab) || preg_match('$<[Aa] [href|HREF]=["|\']http://'.$site.'(.*?)["|\'](.*?)>(.*?)</[Aa]>$',$reponse,$tab)){
         
         $anchor   = $tab[count($tab)-1];
         //on test si c'est une image
         if(preg_match('[img(.*?)alt="(.*?)"]',$anchor,$t) || preg_match("[img(.*?)alt='(.*?)']",$anchor,$t)){
            $anchor   = "Image : ".$t[count($t)-1];
         }elseif(preg_match('[img]',$anchor)){
            $anchor   = "Image : pas d'attribut alt";
         }
         
         return $anchor;
      
      }
      //cas spéciaux de saut de page
   else{
         return false;
      }
   }
   
}


Ensuite le script qui est lancé en CRON une fois par semaine :

Code: Tout sélectionner
set_time_limit(5000);
require ("fonctions.php");

/*dans le cas où vous gérez plusieurs sites, on passe le site qu'on souhaite tester en paramètres (cf champ "site" dans la table)*/
$site   = $_GET['site'];

   ConnectToDatabase();

   $sql   = "SELECT ref, lien FROM liens WHERE site = '$site'";
   $resultats = mysql_query($sql, $_SESSION['connection']) or die(mysql_error());
   
   $ligne   = mysql_fetch_assoc($resultats);
   $txt   = '<html>';
   
   while($ligne){
      
      $trouve   = controlUrl($ligne['lien'],$site);
      
      if($trouve){
         $txt   .= "Lien trouvé sur  : <i>".$ligne['lien']."</i> || référence : ".$ligne['ref']." || <u>$trouve</u><br>";
      }else{
         $txt   .= "<strong>Pas de lien trouvé sur</strong> : <a href='".$ligne['lien']."'>".$ligne['lien']."</a> || référence : ".$ligne['ref']."<br>";
      }
      
      $ligne   = mysql_fetch_assoc($resultats);
      
   }
   echo $txt;
   
   EnvoiMailHTML('votreemail@ndd.com','','controlepartenariats@votresite.com', 'Contrôle des partenariats : '.$site, $txt."</html>");



Résultat :
Un mail se dépose dans votre boite mail et vous affiche tous les liens OK. Pour les pages où il n'a pas trouvé le lien, il met le lien dans le mail pour que vous ayez juste à cliquer dessus pour aller vérifier si effectivement, vous avez disparu du site de votre "partenaire".

A savoir : L'expression régulière utilisée pour détecter le lien et ressortir l'anchor text n'est pas parfaite, il y a des sites où elle ne fonctionne pas, mais j'ai passé déjà trop de temps à la trouver... Si y'a un expert qui passe dans le coin, il est le bienvenu pour l'améliorer.


Voilà, j'espère que ça vous servira. :D


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Ven Mai 30, 2008 20:38

si le lien est dans un commentaire html tu vas le détecter mais il ne sera pas valide.
Code: Tout sélectionner
<!-- <a href="http://www.tonsite.fr">ton site</a> -->


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

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

  • Echanger des liens
    Cet outil vous liste quelques sites qui font des liens vers des sites similaires au vôtre, pour vous aider à trouver des partenaires pour des échanges de liens.
  • 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.
  • Liste des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.


Qui est en ligne

Utilisateurs parcourant ce forum: jcaron, meteo75 et 1 invité