recuperation du rank alexa

Nouveau WRInaute
Bonsoir,
Ca fait plusieurs jours que je cherche à récuperer le rank alexa, j'ai essayé plusieures méthodes mais nulles n'est fiable.

http://data.alexa.com/data?cli=10&dat=s ... nkinfo.com

Ca donne un xml avec le rank alexa
<POPULARITY URL="webrankinfo.com/" TEXT="2341"/>

En se basant sur ça, je fais ces deux fonctions :

Code:
function getAlexaRank() {
                        $url = $this->url['host'];
                        $url = "http://data.alexa.com/data?cli=10&dat=s&url=$url";
                        $data = $this->getPage($url);
                        preg_match('#<POPULARITY URL="(.*?)" TEXT="([0-9]+){1,}"/>#si', $data, $p);
                        $value = ($p[2]) ? number_format($this->toInt($p[2])) : 0;


Code:
function toInt ($string) {
                        return preg_replace('#[^0-9]#si', '', $string);
                }

A vrai dire, je me perd, je veux récuperer l'url d'un formulaire et afficher son rank 8O
Code:
<form method="POST">
Veuillez entrer votre site: <input name='url' value='<?=$url ; ?>' size="20"><input type="submit" value="valider">
</form>


Merci d'avance.
 
WRInaute occasionnel
Salut,

Pourquoi ne pas faire un coup de simplexml par exemple ?

Sinon ça
Code:
<?=$url ; ?>
C'est caca ;)
 
Nouveau WRInaute
Le probléme ce n'est pas l'url, je m'excuse, je me suis mal exprimé, l'url je la récupére dans une variable, aprés jé recupere le contenu du fichier XML avec getPage

en tout voilà mon bout de code :
Code:
<form method="POST">
Veuillez entrer votre site: <input name='url' value='<?=$_REQUEST['url']; ?>' size="20"><input type="submit" value="valider">
</form>

<?


// fonction GetPage

function getPage ($url) {
                        if (function_exists('curl_init')) {
                                $ch = curl_init($url);
                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                                @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                                curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
                                return curl_exec($ch);
                        } else {
                                return file_get_contents($url);
                        }
                }



// GetAlexaRank

function getAlexaRank() {
                        $url = $this->url['host'];
                        $url = "http://data.alexa.com/data?cli=10&dat=s&url=$url";
                        $data = $this->getPage($url);
                        preg_match('#<POPULARITY URL="(.*?)" TEXT="([0-9]+){1,}"/>#si', $data, $p);
                        $value = ($p[2]) ? number_format($this->toInt($p[2])) : 0;
                        echo "$value";

                }



// toInt

function toInt ($string) {
                        return preg_replace('#[^0-9]#si', '', $string);
                }



?>

Si quelqu'un peut me dire où est ce que je me trompe..

Merci d'avance.
 
WRInaute passionné
Code:
echo intval(ereg_replace(".*<REACH RANK=.([0-9]+).*","\\1",str_replace("\n","",file_get_contents("http://data.alexa.com/data?cli=10&dat=s&url=$url"))));
 
Nouveau WRInaute
ca marche pas , ça donne une fausse résultat 8O

voilà tout le code : -http://cjoint.com/?gdw1MAJ6C1

Merci d'avance.
 
WRInaute occasionnel
Comme je l'ai dit, j'ai bien compris ton problème, regarde simplexml dans le manuel php, tu comprendras ...
http://fr.php.net/simplexml


Sinon, quand j'ai cité ton code, je faisais référence au fait que cette notation n'existe plus... C'est obsolète et ça te vaudra surement des warning... Déjà, pour différencier xml et php on fait plutôt
Code:
<?php //mon code ?>


Ensuite, pour faire un affichage, on fait echo ou print et non "=" donc un
Code:
<?php echo $url; ?>
c'est mieux. Ca respecte un peu mieux les standards.
 
Discussions similaires
Haut