Alexa Rank free checker script in Php with SimpleXML

Alexa Rank free checker script in Php with SimpleXML

Avendo tolto Piwik in favore di Analytics, ho cercato un po’ un’alternativa al seo tool che piwik mi forniva, ma non ho trovato molto, ad essere sincero (o, comunque, niente che mi piacesse abbastanza). Così, proprio oggi, mi son deciso ed ho iniziato a creare una prima versione di rank checker, partendo da Alexa Rank (il google pagerank, invece, come sappiamo non serve più).

Appena avrò un po’ di tempo inserirò anche backlink e pagine indicizzate su google.

PS: Questo script, a differenza del tool ufficiale ( https://aws.amazon.com/it/awis/ ), non richiede registrazione, né apikey, né – importante – la carta di credito! 😀

Semplicemente, è uno script gratuito, le richieste sono gratuite, io – dopo averlo modificato, riadattato e sistemato a mio piacimento – lo rilascio gratuitamente.

… Cioè, nel footer c’è sempre il pulsante PayPal …! Se volete fare una donazione, voglio dire, fate pure 😛

Detto ciò, questo è il codice:

<?php

/*

Author: Salvatore Nosches > https://www.laltroweb.it/

Article: https://www.laltroweb.it/homepage/alexa-rank-free-checker-script-in-php-with-simplexml-r163/

Demo: https://www.laltroweb.it/tools/seo/

*/

// html form
echo '
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
	<input type="url" id="url" name="url" placeholder="eg: https://google.it/" value="'.(isset($_POST["url"]) ? htmlspecialchars($_POST["url"]) : NULL).'" onfocus="this.select();" pattern="(https?)://.+\..+" title="Allowed only valid http and https url" required>
	<input type="submit" id="submit" value="Go">
</form>';

// Grab alexa data from xml : default = $_SERVER['HTTP_HOST']
$xml = @simplexml_load_file("http://data.alexa.com/data?cli=10&dat=snbamz&url=".(isset($_POST["url"]) ? htmlspecialchars($_POST["url"]) : $_SERVER['HTTP_HOST'])."");

// Set empty var
$empty = "...";

// Info host and author
$host = isset($xml->SD[0]) ? $xml->SD[0]->attributes()->HOST : "Something went wrong! Please, check your url".$empty;
$owner = isset($xml->SD[0]->OWNER) ? $xml->SD[0]->OWNER->attributes()->NAME : $empty;

// Domain Rank
$rank = isset($xml->SD[1]->POPULARITY) ? $xml->SD[1]->POPULARITY->attributes()->TEXT : $empty;
$reachrank = isset($xml->SD[1]->REACH) ? $xml->SD[1]->REACH->attributes()->RANK : $empty;
$rankdelta = isset($xml->SD[1]->RANK) ? $xml->SD[1]->RANK->attributes()->DELTA : $empty;

// Set image in rank!
if (preg_match('#^\+#', $rankdelta) === 1) {
	$rank_image = ' <img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeVJREFUeNqkU01oE1EQ/mazSTdRmqSxLVSJVKU9RYoHD8WfHr16kh5EFA8eSy6hXrwUPBSKZ6E9V1CU4tGf0DZWDEQrGkhprRDbCvlpavan3ezu+LLSUnADLZnHwHvzmJlvvpkhZkY7IqFNaTuAfPhhP/8Uo87SGSaDsP27hgYM/lUpy6lHdqsAtM+BPfvqKp3ufYKwcgmWCug6oKmrrG3PoaqngWjdd/922hOBs5C/jJA6x7AiUt8VYVUAVQXXShfIqCYRMZO8/N1N+B8H1sOUwivpSUSVCJ2MAjtVwBAIdv+AQkHQqbOgc+fBvorjyQENDcch16/BtkQdAlC4E6jrYHGgGU18Io3gmhzJuwub6/fQJYNi/YBpCifhbDaAPXFvCBVxXbvfbNGFeN8DkjogWAd8DljV3KRutcEAeHMN/HXZ4p9bhncJHCyhNx52R0Kv/XNuQvYBnM+CP7xddXL5KaJw0TMAF8qjnMvegeK/SLHubhpKDKIrJDlvXoMX3y9xcSMZyBQ+tpyk5hzsa2Ns7LGdfWdbL6fZvHn92d7dgROH/730YBLtiZmEdGPkFnhX4kxmjVe2xgPfCtrRd6GHRtEh9zsL8xVe+pwSzj+OtwvletZZ/wLeKD71L+ZeHHWZ/gowABkp7AwwnEjFAAAAAElFTkSuQmCC\'>';
} elseif (preg_match('#^\-#', $rankdelta) === 1) {
	$rank_image = ' <img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAepJREFUeNrEk79PFEEUx9/uDDd7v/AAQQnEQokmJCRGwc7/QeM/YGVxsZJQYI/EhCChICYmUJigNBSGzobQaI5SaYRw6imne0d2D/bYmZ3dGd+YQKEHYiyc5GUyb3Y+77vfeWNpreFfhvXfAWAAJtbKi7dff1rWK9vPHx3mThP2Iaipk5EzTg8Qmru38H7izmkFHAF4WH1R52654PR0Oamzj2dKxYt/Bbg1OPZuY3d9aU82VGem/5LtnJscLxWzfzRxaWNqWJP0XUadIbSzu5DuvUJpzq7sfYBKsP1GJeLB+PWpt8cCXm4+2+zLXx4guKiLXWA2Nc5ChOuacMEPv20FkT+dIawyenVi5VcAbcigWzXLeNiDRCdwId0LFm5IUMBIBgrp8wOEsFlfeCGm23/zoBZWn9a4C314A1nCoM1OAVccuGyCkPs/P+pIdVIOkG9pIh6YlyqCrwhRKD3GygK9PUBImIQQxRi4b2O+JcCLg8+e8NZiLVEygwCrWpYF0jQJziYU/ho2TUuCPTn8hHcQNuZy1/94sAMOzQHDeqaij7Cd8Dt8CatGhX3iWxgtFW/m29pnUjR7TSQcRCIAVW1FSr6KAVYdi+5Pj8yunviYHq7f72po3Y9dbi7CxzDO1+duzCXH9cEPAQYAhJELY/AqBtwAAAAASUVORK5CYII=\'>';
} else {
	$rank_image = '';
}

// Domain Country Rank
$countrydata = isset($xml->SD[1]->COUNTRY) ? $xml->SD[1]->COUNTRY->attributes()->NAME." (".$xml->SD[1]->COUNTRY->attributes()->CODE.") - Rank: ".$xml->SD[1]->COUNTRY->attributes()->RANK : $empty;

// we can output all
echo '
<p>Host: '.$host.'</p>
<p>Author: '.$owner.'</p>
<p>Global Rank: '.$rank.'</p>
<p>Reach Rank: '.$reachrank.'</p>
<p>Rank Delta: '.$rankdelta.$rank_image.'</p>
<p>Country Data: '.$countrydata.'</p>';

?>

Qui una demo: https://www.laltroweb.it/tools/seo/

Questo codice è lo stesso identico codice da me usato in quel link della demo (pronto all’uso, copia e incolla)!

Ho solo cambiato l’input-submit in button-submit per allinearlo allo stile di ipb, e modificato l’action del form inserendo direttamente l’url della pagina: “https://www.laltroweb.it/tools/seo/”

Esteticamente è migliorabile, me ne rendo conto, ma ho lavorato prevalentemente al codice (correggendo errori ed eccezioni, ed ottimizzandolo meglio che potevo), e lo regalo ai miei visitatori 🙂

Spero possa tornare utile!




Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.