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!!!
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…
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?