Aller au contenu

Existence d'url avec curl: souci en local


xpatval

Sujets conseillés

Bonjour,

Afin de tester l'existence d'une url (du moins, que le code retour soit à 200), j'utilise cette fonction:

function check_url($url, $timeout = 10, $maxredirs = 10)
{
$ret = FALSE;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, $maxredirs);
if (curl_exec($ch)) {
$ret = curl_getinfo($ch, CURLINFO_HTTP_CODE);
}
curl_close($ch);

return ($ret == 200);
}

Pour mes tests, cela se passe en local, et la dll correspondante est activée dans le php.ini.

Mon souci est que je tombe constamment en time-out, quelque soit la valeur de celui-ci ($timeout = 10, ou 1000...)

Est-ce parce que je travaille en local, ou bien ma fonction déconne ?

Merci de vos réponses,

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tu devrais afficher, à l'intérieur de cette fonction, toutes les données utilisées :

echo "<p>".$url;

echo "<br>".$timeout;

echo"<br>".maxredirs;

echo "<br>".$ch;

etc.

Tu aurais ainsi les bonnes données, celles qui servent effectivement au programme.

Pour info, quand tu mets 'maxredirs à 1, ca donne quoi ? ca marche pas mieux ?

Et si, ce soir par exemple, tu lances le prog. en regardant ce que ca donne, et en mettant :

set_time_limit(86400);

> Permet de faire tourner le prog. 86400 secondes (24heures ;) )

Avec l'affichage des diff. données, tu aurais p'tete un peu plus d'infos.

Nicolas.

Lien vers le commentaire
Partager sur d’autres sites

Alors, les données sont les suivantes:

$ch = resource id #xx

$url = www.webmaster-hub.com

$timeout = 10 (comme défini dans la fonction)

$maxredirs = 10 (comme défini...).

Modifier le maxredir à 1 ne change rien, tout comme le timeout.

De plus, en testant juste l'affichage d'une page web (le hub, par exemple) par curl_exec, je n'ai aucun souci, là encore, si le script est en ligne. Alors qu'encore une fois, en local, aucune donnée n'est renvoyée.

Je penche plus pour une mauvaise configuration de wamp...

Lien vers le commentaire
Partager sur d’autres sites

Et tu as défini quoi comme USER_AGENT ? Parce que le Hub est un peu "picky" sur ce plan et ne se laisse pas violer par n'importe qui :lol:

Lien vers le commentaire
Partager sur d’autres sites

Tu as passer wamp en ligne? Il est autorisé dans le firewall?

Pfuuu....Je n'y pensais plus à celui-là.... :thumbsup:

Quant à l'url www.webmaster-hub.com, elle n'est citée qu'à titre d'exemple, dans le post...

Merci de vos réponses,

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...