Lire une page web

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lire une page web

par @rthur » 05 févr. 2008, 22:59

Demande à ton hébergeur, tu le payes pour ça et ton code est correct...

par h0_noMan » 05 févr. 2008, 18:32

Fais un essai avec fsockopen() et un proxy.
Puis tu testeras sans le proxy pour voir si il t'a bloque.
<?php

// Header
header("Content-type: text/plain;charset=ISO-8859-1"); 

// Parametre du proxy
$proxy_ip   = "xxx.xxx.xxx.xxx" ;
$proxy_port = "80" ;

// On cree la Socket avec proxy
$socket = fsockopen($proxy_ip,$prox_port,$errno,$errstr,30);

// On cree la Socket sans proxy
// $socket = fsockopen("www.winamax.com",80,$errno,$errstr,30);

// Le CRNL
$CRNL    = "\r\n" ;

// On cree l'entete HTTP
$entete  = "GET poker/index.php HTTP/1.0".$CRNL ;
$entete .= "Host: www.winamax.com".$CRNL ;
$entete .= "Connection: close".$CRNL ;
$entete .= $CRNL ;

if($socket)
{
    // On envoie la Socket
    fwrite($socket,$entete);

    while(!feof($socket))
    {
        $line = fgets($socket);
        echo $line ;
    }

    // on ferme la Socket
    fclose($socket);
}else{
    echo "Proxy non disponible.";
}

?>

par Pax24 » 05 févr. 2008, 17:27

Code : Tout sélectionner

Warning: fopen(http://www.winamax.com/poker/index.php) [function.fopen]: failed to open stream: Connection timed out on line 2 allow_url_fopen : 1
:? :cry:
Mon serveur est sur OVH mais j'ai essayé aussi depuis un hébergement free.fr et là ça marche... Autrement dit est-ce que le site peut avoir en quelque sorte blacklisté l'IP de mon serveur OVH ?

par @rthur » 04 févr. 2008, 00:00

Bonjour,

En une ligne tu peux utiliser également la fonction file_get_contents():
print file_get_contents("http://www.winamax.com/poker/index.php");

par h0_noMan » 03 févr. 2008, 23:20

Je viens de tester et je recupere bien leur site.

Mon code :
<?php

$handle = fopen("http://www.winamax.com/poker/index.php","r");

if ($handle)
{
	while (!feof($handle))
	{
        $buffer = fgets($handle, 4096);
        echo "<!-- ".$buffer."\n" ;
	}
	
	fclose($handle);
}

?>
Edit : Verifie que allow_url_fopen est bien a 1.
echo "allow_url_fopen : ".ini_get("allow_url_fopen");

par Pax24 » 03 févr. 2008, 18:33

Ah ben pourtant si...
J'ai un script pour récupérer l'agenda de tournois de poker qui marchait et depuis une semaine :

Code : Tout sélectionner

$test = fopen('http://www.winamax.com/poker/index.php', 'r');
Warning: fopen(http://www.winamax.com/poker/index.php) [function.fopen]: failed to open stream: Connection timed out

J'ai bien sûr testé depuis un autre serveur et autre IP au cas où mais idem.

par h0_noMan » 03 févr. 2008, 01:35

Le site distant ne peux pas interdire le fopen() directement.

Quel est l'erreur ou le comportement anormal ?

par Pax24 » 03 févr. 2008, 00:52

Bonsoir,
Et quand le site distant interdit le fopen y'a une autre solution ? :cry:

par h0_noMan » 30 janv. 2008, 17:22

Il faut lire la page Web avec fopen()/fgets() puis trouver la ligne ou se trouve les infos du joueur.

par alain62 » 30 janv. 2008, 17:10

Avec votre aide, j'ai trouvé :
$filename = "http://la page web";
$handle = fopen ($filename, "rb");
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}

fclose ($handle);
Merci beaucoup

par h0_noMan » 30 janv. 2008, 15:15

Oui cela est possible avec fopen()

par Truc » 30 janv. 2008, 15:08

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Débuter en PHP".

Lire une page web

par alain62 » 30 janv. 2008, 14:23

Bonjour,

voilà le problème :
J'aurais besoin de prendre des informations (statistiques de jeu) sur un site web.

Peut-on lire une page web, la mettre dans une variable, que je puisse ensuite en tirer les informations nécessaires ?

Merci beaucoup pour votre aide..
Cordialement

@lain