Aller au contenu

Existence d'url avec curl: souci en local


Sujets conseillés

Posté

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

Posté

Bon, apparemment, c'est uniquement le fait d'être en local qui pose problème. Mais alors pourquoi ....?

Posté

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.

Posté

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...

Posté

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:

Posté
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

Veuillez vous connecter pour commenter

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



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