Rechercher : dans
Par :

Signification [php]

Dernière réponse le 5 jun 2008 à 10:42:45 bg62, le 6 mar 2008 à 15:36:18 
 Signaler ce message aux modérateurs

Bonjour,
que signifie cette ligne :

 $pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress");

(dans un script qui devrait afficher le PR d'une page (mais qui ne fonctionne pas ...)
merci
@mitiés
b g

le 'www' est fait aussi pour communiquer, partager et échanger, non ?
Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « signification [php] » dans :
PHP - Les fichiers Voir La gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données Voir PHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données Voir Php permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
Introduction à PHP VoirQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...

1

chico200987, le 6 mar 2008 à 15:50:32

Il prend le résultat HTML de la page : "http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&­;oe=UTF-8&features=Rank&q=$adress" que tu as passé en paramètre et l'insert dans ton tableau nommé $pr.

Chaque indice de ton tableau $pr contiendra une ligne du résultat de la page HTML.

Ce qui me semble faut dans ton script et qui ferait qu'il ne marche pas est le $adress pas pris en compte par php là.

Essaie :

$pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&­;oe=UTF-8&features=Rank&q=".$adress);

(J'ai déplacé le guillemet)

Répondre à chico200987

2

chico200987, le 6 mar 2008 à 15:51:29

Oups, oublié la source pour PHP : http://fr.php.net/file

Répondre à chico200987

3

bg62, le 6 mar 2008 à 15:53:29

Comprends plus ... tout fonctionnait impec depuis trois mois et plus du tout depuis deux jours ...
voici le code source de la page:

<?php 
define('GMAG', 0xE6359A60);

//unsigned shift right
function zeroFill($a, $b)
{
    $z = hexdec(80000000);
        if ($z & $a)
        {
            $a = ($a>>1);
            $a &= (~$z);
            $a |= 0x40000000;
            $a = ($a>>($b-1));
        }
        else
        {
            $a = ($a>>$b);
        }
        return $a;
} 


function mix($a,$b,$c) {
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,13)); 
  $b -= $c; $b -= $a; $b ^= ($a<<8); 
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  $b -= $c; $b -= $a; $b ^= ($a<<16);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); 
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));  
  $b -= $c; $b -= $a; $b ^= ($a<<10); 
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  
  return array($a,$b,$c);
}

function GCH($adress, $length=null, $init=GMAG) {
    if(is_null($length)) {
        $length = sizeof($adress);
    }
    $a = $b = 0x9E3779B9;
    $c = $init;
    $k = 0;
    $len = $length;
    while($len >= 12) {
        $a += ($adress[$k+0] +($adress[$k+1]<<8) +($adress[$k+2]<<16)
+($adress[$k+3]<<24));
        $b += ($adress[$k+4] +($adress[$k+5]<<8) +($adress[$k+6]<<16)
+($adress[$k+7]<<24));
        $c += ($adress[$k+8] +($adress[$k+9]<<8)
+($adress[$k+10]<<16)+($adress[$k+11]<<24));
        $mix = mix($a,$b,$c);
        $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
        $k += 12; 
        $len -= 12;
    }

    $c += $length;
    switch($len)              /* all the case statements fall through */
    {
        case 11: $c+=($adress[$k+10]<<24);
        case 10: $c+=($adress[$k+9]<<16);
        case 9 : $c+=($adress[$k+8]<<8);
          /* the first byte of c is reserved for the length */
        case 8 : $b+=($adress[$k+7]<<24);
        case 7 : $b+=($adress[$k+6]<<16);
        case 6 : $b+=($adress[$k+5]<<8);
        case 5 : $b+=($adress[$k+4]);
        case 4 : $a+=($adress[$k+3]<<24);
        case 3 : $a+=($adress[$k+2]<<16);
        case 2 : $a+=($adress[$k+1]<<8);
        case 1 : $a+=($adress[$k+0]);
         /* case 0: nothing left to add */
    }
    $mix = mix($a,$b,$c);
    /*-------------------------------------------- report the result */
    return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}

function getPR($_url) {
    $adress = 'info:'.$_url;
    $ch = GCH(strord($adress));
    $adress='info:'.urlencode($_url);
    $pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress");
    $pr_str = implode("", $pr);
    return substr($pr_str,strrpos($pr_str, ":")+1);
}

?>

@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

4

gryzzly, le 6 mar 2008 à 15:59:15

A récupérer le pr d'une page.
ne fonctionne pas selon les serveurs. J'ai toujours aimé le désert. On s'assoit sur une dune de sable. On ne voit rien. On n'entend rien. Et cependant quelque chose rayonne en silence...
[A.S-E.]

Répondre à gryzzly

5

bg62, le 6 mar 2008 à 16:11:41

Ok mais pourquoi depuis 2 jours ne fonctionne--il plus ?
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

6

gryzzly, le 6 mar 2008 à 16:51:16

Demandes à ton hébergeur ;o) J'ai toujours aimé le désert. On s'assoit sur une dune de sable. On ne voit rien. On n'entend rien. Et cependant quelque chose rayonne en silence...
[A.S-E.]

Répondre à gryzzly

7

bg62, le 18 mar 2008 à 09:33:13

Bonjour
je viens d'avoir la réponse, enfin j'espère que c'est la bonne ....

Suite à notre mise à jour en Debian 4.0, la fonction allow_url_fopen est
passé sur Off, il faudra peut-être créer un fichier php.ini et y mettre
la ligne de commande suivante :
allow_url_fopen = on

comment créer ce fichier et surtout qu'y mettre (la ligne indiquée et c'est tout ?) et le placer où ? (dans le dossier où se trouve le script ou ailleurs ???)
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

8

Dalida, le 18 mar 2008 à 14:50:30

Salut,

dans ton phpinfo, 'allow_url_fopen' est à 'on' donc si ça ne fonctionne pas cela ne vient pas de là…

et l'url d'appel chez Google n'a pas changée ?
[ Mathieu ]

Pensez à utiliser le bouton "Conserver la mise en forme du texte sélectionné" pour mettre en forme les codes sources et à cocher l'option "Résolu" quand c'est le cas, merci !

Répondre à Dalida

10

bg62, le 18 mar 2008 à 17:00:21

Tu y comprends qq chose toi ?
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

11

Dalida, le 18 mar 2008 à 17:07:21

Non…

as tu testé l'url toute seule ?
[ Mathieu ]

Pensez à utiliser le bouton "Conserver la mise en forme du texte sélectionné" pour mettre en forme les codes sources et à cocher l'option "Résolu" quand c'est le cas, merci !

Répondre à Dalida

12

bg62, le 19 mar 2008 à 09:13:37

Pour l'url ... tester comment ?
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

13

Dalida, le 19 mar 2008 à 09:18:37

Salut,

au lieu de :

$pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&­;oe=UTF-8&features=Rank&q=$adress");

tu mets :
echo("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&­;oe=UTF-8&features=Rank&q=$adress");

il t'affiche l'url que tu peux copier/coller dans ton navigateur.
[ Mathieu ]
Pensez à utiliser le bouton "Conserver la mise en forme du texte sélectionné" pour mettre en forme les codes sources et à cocher l'option "Résolu" quand c'est le cas, merci !

Répondre à Dalida

14

bg62, le 19 mar 2008 à 09:32:13

Donc à changer dans le script ?
et pourquoi 'copier/coller ... puisque c'est le script qui doit générer le résultat seul ?
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

15

Dalida, le 19 mar 2008 à 09:42:44

Oui mais je me demandais si Google n'avait pas changé l'url ou les paramètres et je me disais que le meilleur moyen de tester la validité de l'url c'est de l'essayer ou au moins de la lire pour voir si elle est construite comme il faut.
[ Mathieu ]

Pensez à utiliser le bouton "Conserver la mise en forme du texte sélectionné" pour mettre en forme les codes sources et à cocher l'option "Résolu" quand c'est le cas, merci !

Répondre à Dalida

16

bg62, le 19 mar 2008 à 09:49:47

Je viens d'essayer cela ne change rien à l'affichage dans la page
j'ai remis le script d'origine ...
commence à devenir désespéré ...
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

17

gryzzly, le 19 mar 2008 à 09:53:45

Essayes de voir avec google directement. en général, ils sont assez réactifs (de mes souvenirs)... pour te renseigner sur ce qui pourrait empecher l'affichage ?
je dois te dire que de mon coté, j'avais fait la remarque par simple recherche sur le net, sans être moi meme au "jus" du fonctionnement. mais j'accorde que ma réponse pouvais laisser penser plus... J'ai toujours aimé le désert. On s'assoit sur une dune de sable. On ne voit rien. On n'entend rien. Et cependant quelque chose rayonne en silence...
[A.S-E.]

Répondre à gryzzly

20

bg62, le 19 mar 2008 à 10:15:06

Et comment les contacter pour un problème de ce genre ?
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

23

gryzzly, le 19 mar 2008 à 10:40:13

Tu peux tenter :

1) http://groups.google.com/group/google_webmaster_Help-fr?hl=f­r (des employés google y passent)
2) http://www.google.fr/support/webmasters/ (j'étais persuadé qu'il y avait autrefois un lien direct pour leur poser une question directement)
3) j'ai p'tet dit une connerie et ca ne concernait peut être que les produit qui leur rapporte des sous (en l'occurence adsense) J'ai toujours aimé le désert. On s'assoit sur une dune de sable. On ne voit rien. On n'entend rien. Et cependant quelque chose rayonne en silence...
[A.S-E.]

Répondre à gryzzly

18

Dalida, le 19 mar 2008 à 10:03:33

Il devrait afficher la requête en vrac en haut de la page !

avant

$pr_str = implode("", $pr);

ajoute
ptint_r( $pr_str );

pour savoir ce que la variable a dans le ventre.
[ Mathieu ]
Pensez à utiliser le bouton "Conserver la mise en forme du texte sélectionné" pour mettre en forme les codes sources et à cocher l'option "Résolu" quand c'est le cas, merci !

Répondre à Dalida

19

bg62, le 19 mar 2008 à 10:13:46

Bon je viens de faire un test avec une sauvegarde d'il y a deux mois et qui fonctionnait
le problème est le même ... pas d'affichage du PR
cela doit donc venir de l'hébergeur 1&1 après leurs changements ...
et donc la solution doit être dans leur FAQ ... mais cela me dépasse complètement (à part le fichier php.ini que j'ai mis):
http://faq.1and1.fr/
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

9

bg62, le 18 mar 2008 à 15:06:19

Pour php;ini:

allow_url_fopen = on

et pour pr.php
<?php 

define('GMAG', 0xE6359A60);

//unsigned shift right
function zeroFill($a, $b)
{
    $z = hexdec(80000000);
        if ($z & $a)
        {
            $a = ($a>>1);
            $a &= (~$z);
            $a |= 0x40000000;
            $a = ($a>>($b-1));
        }
        else
        {
            $a = ($a>>$b);
        }
        return $a;
} 


function mix($a,$b,$c) {
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,13)); 
  $b -= $c; $b -= $a; $b ^= ($a<<8); 
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  $b -= $c; $b -= $a; $b ^= ($a<<16);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); 
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));  
  $b -= $c; $b -= $a; $b ^= ($a<<10); 
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  
  return array($a,$b,$c);
}

function GCH($adress, $length=null, $init=GMAG) {
    if(is_null($length)) {
        $length = sizeof($adress);
    }
    $a = $b = 0x9E3779B9;
    $c = $init;
    $k = 0;
    $len = $length;
    while($len >= 12) {
        $a += ($adress[$k+0] +($adress[$k+1]<<8) +($adress[$k+2]<<16)
+($adress[$k+3]<<24));
        $b += ($adress[$k+4] +($adress[$k+5]<<8) +($adress[$k+6]<<16)
+($adress[$k+7]<<24));
        $c += ($adress[$k+8] +($adress[$k+9]<<8)
+($adress[$k+10]<<16)+($adress[$k+11]<<24));
        $mix = mix($a,$b,$c);
        $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
        $k += 12; 
        $len -= 12;
    }

    $c += $length;
    switch($len)              /* all the case statements fall through */
    {
        case 11: $c+=($adress[$k+10]<<24);
        case 10: $c+=($adress[$k+9]<<16);
        case 9 : $c+=($adress[$k+8]<<8);
          /* the first byte of c is reserved for the length */
        case 8 : $b+=($adress[$k+7]<<24);
        case 7 : $b+=($adress[$k+6]<<16);
        case 6 : $b+=($adress[$k+5]<<8);
        case 5 : $b+=($adress[$k+4]);
        case 4 : $a+=($adress[$k+3]<<24);
        case 3 : $a+=($adress[$k+2]<<16);
        case 2 : $a+=($adress[$k+1]<<8);
        case 1 : $a+=($adress[$k+0]);
         /* case 0: nothing left to add */
    }
    $mix = mix($a,$b,$c);
    /*-------------------------------------------- report the result */
    return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}

function getPR($_url) {
    $adress = 'info:'.$_url;
    $ch = GCH(strord($adress));
    $adress='info:'.urlencode($_url);
    $pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress");
    $pr_str = implode("", $pr);
    return substr($pr_str,strrpos($pr_str, ":")+1);
}

?>









@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

21

davidmickael, le 19 mar 2008 à 10:27:22

Salut, Bonjour,
Tu n'as pas besoin d'include dans ton File,
tu codes en php, sur du lLinux/Unix?
Faut faire gaffe, aux configurations dans le "php.ini", le htdocs", sous windows, en tout cas,
tu tournes avec un SERVEUR APACHE ASSOCIE INSTALLE EN INDEPENDANT sur un OS LINUX?(0000)

Répondre à davidmickael

22

bg62, le 19 mar 2008 à 10:35:44

Je suis chez 1&1 en unix
pour le reste ... tu sais que tu me parles en chinois !?
@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

24

Toons, le 4 jun 2008 à 16:32:02

Hello,
je relance le sujet ayant le même problème avec la même fonction et sur le même hoster (one&one) mais je sais pas si c'est pas le protocole google ki a changer ou si sa vient du serveur, a tu trouvé solution a ton problème bg62 ?

car j'essais de tester l'url google du script mais sa me renvoi une erreur est-ce moi qui passe pas les bon paramètres ou c bien le protocole qui a changer ?

merci d'avance de donné des news bg52.

Répondre à Toons

25

bg62, le 4 jun 2008 à 16:40:21

La requète par ce serveur semble être bannie ... il faut donc trouver un autre système ....
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

26

Toons, le 4 jun 2008 à 17:15:29

La tu trouvé cette solution ?

je suis entrain de regarder du cotés du script de Freeglobe, mais c plus lourd !!!

Répondre à Toons

27

 bg62, le 5 jun 2008 à 10:42:45

Prendre le résultat d'un ou plusieurs sites en ligne qui eux sont acceptés ... pas toujours très fiable, mais ... bon !
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62