xpatval Posté 5 Février 2008 Posté 5 Février 2008 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
xpatval Posté 6 Février 2008 Auteur Posté 6 Février 2008 Bon, apparemment, c'est uniquement le fait d'être en local qui pose problème. Mais alors pourquoi ....?
Anonymus Posté 7 Février 2008 Posté 7 Février 2008 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.
xpatval Posté 7 Février 2008 Auteur Posté 7 Février 2008 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...
Dadou Posté 7 Février 2008 Posté 7 Février 2008 Tu as passer wamp en ligne? Il est autorisé dans le firewall?
Dan Posté 7 Février 2008 Posté 7 Février 2008 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
xpatval Posté 7 Février 2008 Auteur Posté 7 Février 2008 Tu as passer wamp en ligne? Il est autorisé dans le firewall? Pfuuu....Je n'y pensais plus à celui-là.... 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant