A la demande de @GHBSXR (sorry je m’y ferai jamais) j’ai réalisé un script php qui va vous permettre de vérifier la ‘réputation’ de vos sites via le service WOT (Web Of Trust).
WOT permet via ses plugins chrome ou firefox ou simplement via son site web de vérifier 4 notes attribués par les internautes :
- Niveau de confiance,
- Renommée du vendeur,
- Conservation de la vie privée et
- Sécurité pour les enfants
Si vous souhaitez plus d’infos sur ce service je vous renvoi à l’article WOT de Sandrine (avec de la pub pour moi dedans
)
Vous devez pour pouvoir utiliser le script avoir un server avec php + php-curl activé, collez simplement votre liste d’urls (1 par ligne) et le script vous renverra un fichier csv qui contiendra le domaine de l’url + les informations associés sur WOT.
Attention WOT n’attribue des scores que pour les domaines et sous domaines, donc pas besoin de coller 150 urls du meme domaine, ca ne sert à rien.
Voici donc ce script :
<?php
function getDomValue($path, $html){
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xp = new DOMXPath($dom);
$nodeList = $xp->query($path);
foreach($nodeList as $domElement){
return $domElement->nodeValue;
}
return false;
}
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals, ';', '"');
}
function getHeaders(){
$headers = array();
foreach ($_SERVER as $k => $v)
{
if (substr($k, 0, 5) == "HTTP_")
{
$k = str_replace('_', ' ', substr($k, 5));
$k = str_replace(' ', '-', ucwords(strtolower($k)));
$headers[$k] = $v;
}
}
return $headers;
}
function getUrl($u){
global $proxyTab;
if($proxyTab !== false){
$proxy = $proxyTab[rand(0, count($proxyTab)-1)];
}
$head = getHeaders();
$headers = array();
$headers[] = 'Accept: '.$head['Accept'];
$headers[] = 'Accept-Language: '.$head['Accept-Language'] ;
$headers[] = 'Accept-Charset: '.$head['Accept-Charset'];
$headers[] = 'Keep-Alive: '.$head['Keep-Alive'];
$headers[] = 'Connection: '.$head['Connection'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$u);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after Ns
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
if($proxyTab !== false){
$proxy = $proxyTab[rand(0, count($proxyTab)-1)];
$proxy = explode(':',$proxy);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);
}
$res = curl_exec( $ch );
$info = curl_getinfo($ch);
$header = preg_replace('#^HTTP.*\n#', '', $res);
$header = substr($header, 0, $info['header_size']);
preg_match_all('#^([^:].+):\s(.+)$#mi', $header, $m);
$header = @array_combine($m[1], $m[2]);
$pattern = "#META http-equiv=['|\"]Refresh['|\"] content=['|\"][0-9]+;url=(.*?)['|\"]#si";
if(preg_match($pattern, $res, $loc)) {
$url = $loc[1];
}else{
$url = $info['url'];
}
return array($res, $info, $url, $header);
}
if(isset($_POST['txt'])){
//$proxyTab = file();
$tab = preg_split('#(\n)#',$_POST['txt']);
$results = array(array('Domain', 'Rank', 'Popularity', 'Trustworthiness', 'Vendor reliability', 'Privacy', 'Child Safety'));
foreach($tab as $t){
$t = trim($t);
if(substr($t, 0, 4) != 'http') $t = 'http://'.$t;
$u = parse_url($t);
$host = $u['host'];
if($t != ''){
$r = array();
$res = getUrl('http://www.mywot.com/en/scorecard/'.$host);
$r['domain'] = $host;
$r['rank'] = getDomValue('//ul[@id="rank"]/li[2]/span[1]', $res[0]);
$r['pop'] = getDomValue('//div[contains(@class, "popularity")]/@class', $res[0]);
preg_match('#.*popularity-([0-9]).*#', $r['pop'], $m);
$r['pop'] = $m[1];
$r['trust'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[2]/td[2]/div[1]/div[1]/div', $res[0]);
$r['rel'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[4]/td[2]/div[1]/div[1]/div', $res[0]);
$r['priv'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[6]/td[2]/div[1]/div[1]/div', $res[0]);
$r['safe'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[8]/td[2]/div[1]/div[1]/div', $res[0]);
$results[] = $r;
}
}
$fp = fopen('php://memory', 'w');
array_walk($results, '__outputCSV', $fp);
rewind($fp);
$output = stream_get_contents($fp);
fclose($fp);
header('Content-type: application/vnd.ms-excel');
header('Content-disposition: attachment; filename="wotexport.csv"');
echo $output;
die();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-fr">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>WOT checker</title>
</head>
<body>
<h1>WOT EXTRACTOR</h1>
<p>Collez votre liste d'url dans le champ texte ci-dessous et cliquez sur Go</p>
<form action="" method="post">
<textarea name="txt" style="width:500px;height:300px;"><?php echo $rt; ?></textarea>
<input type="submit" value="Go" />
</form>
</body>
</html>
PS : si vous souhaitez utiliser des proxys alors remplacer la ligne 76 par $proxyTab = array(‘ip1:port’,'ip2:port’);
Rendez wordpress conforme avec la directive européenne sur la vie privée
Ce plugin est la pour mettre facilement vos sites wordpress en conformité avec la future (au mois de Mai 2012) application de la directive européenne sur la vie privée concernant l’information et le choix des internautes concernant le stockage de cookies sur leur ordinateur lors de la visite de vos sites.
Si l’utilisateur refuse l’utilisation des cookies via ce plugin alors tous les cookies seront supprimés sur le site a chaque chargement de page (sauf si vous êtes loggé sur la partie admin).
Le choix de l’utilisateur est alors mémorisé dans …….. un cookie lolilol ! (c’est tout le paradoxe de ce projet)
Le script est disponible gratuitement sur mon espace GitHub : https://github.com/beunwa/WpAutorizeCookie
Ps : le look de l’alerte est aisément modifiable dans le plugin via les css
Ps2 : je me suis largement inspiré du site de la CNIL pour ce plugin, merci à eux