[php]verifier la connectivite a un site

bonjour

j ai fait un code qui permet de se connecter a un site et de recuperer ses sources:
$lines = file (‘http://www.mappy.fr/’);

par contre ce que je voudrais maintenant ajouter c est quand il n y a pas de connexion internet ou bien que le lien est mort…

parce que vu que ce code est au debut de ma page, si il n arrive pas a se connecter a se ce site, ca fait ramer a mort voire il y a plus rien qui marche pour la page en question.

Comment peux ton faire?

merci

file retourne FALSE s’il ne parvient pas à lire le fichier.
Donc après suffit de faire quelque chose du genre :
[cpp]
if ($lines = file(‘http://www.mappy.fr/’))
{
//code à executer si le fichier existe
}else
{
//code à executer si le fichier n’existe pas
}
[/cpp]

oui mais le problème c est au bout de combien de temps il va savoir si il peut lire ou pas le fichier?

parce que j aimerais que ca dure ce moment de “doute” pas plus de 3/4s pas 30s!!!

personne?

Plutôt :

if ( ( $lines = file(‘http://www.mappy.fr/’) ) !== false )

Pour le reste, kookiz t’as écrit la solution.

qd je fais ca il m affiche 2 warning (logique) qd je coupe volontairement ma connexion internet:

Warning: file(): php_network_getaddresses: gethostbyname failed in d:\easyphp\intranet\client.php on line 9

Warning: file(http://www.mappy.fr/): failed to open stream: No error in d:\easyphp\intranet\client.php on line 9

il y a moyen de les supprimer? (sans agir sur le serveur directement)

non mais de toute façon, ton serveur supporte pas :x donc ton script plantera toujours.

en gros pour faire ce que je veux faire, j ai pas de solutions… :frowning:

Essaie eventuellement de d’abord verifier l’existence du ficher avec file_exists :

if (file_exists(‘http://www.mappy.fr/’))
{

}

Ca devrait te permettre d’éviter les warning.

je dirais plutôt sans le / terminal.

j ai fait ca:


if (file_exists('http://www.mappy.fr'))
{
$lines = file ('http://www.mappy.fr/');
// Affiche toutes les lignes du tableau comme code HTML
foreach($lines as $line)
	{
	$occurence1=substr_count($line,'var mappy_server');
	if($occurence1==1)
		$s=htmlspecialchars($line);
		
	$occurence2=substr_count($line,'var mappy_sid');
	if($occurence2==1)
		$ses=htmlspecialchars($line);
	}
$serv=str_replace("var mappy_server = '"," ",$s);
$serveur=trim(str_replace("';","",$serv));

$sessi=str_replace("var mappy_sid = '"," ",$ses);
$session=trim(str_replace("';","",$sessi));
}
else
{echo 'Verifiez votre connexion internet';}

malheureusement il me met systematiquement : Verifiez votre connexion internet que la connexion internet soit la ou pas la

cf. ton :

Warning: file(): php_network_getaddresses: gethostbyname failed in d:\easyphp\intranet\client.php on line 9

Warning: file(http://www.mappy.fr/): failed to open stream: No error in d:\easyphp\intranet\client.php on line 9

Tu as un firewall?

non aucun firewall

Ce message n’était pas conforme aux règles d’utilisation du nouveau forum :

…?