pierrickg Posté(e) le 1 novembre 2006 Posté(e) le 1 novembre 2006 Bonjour, voilà, j'ai une BD mySQL dans laquelle chope des liens vers des sites internets et je veux les vérifier. Je fais donc après un tambouille pour la BD puis : use DBI(); require LWP::UserAgent; require HTTP::Request; require HTTP::Response; # ?? while ($data = $sth->fetchrow_hashref()) { # test url $url = $data->{'url'}; $etat = &check_url($url); print "<BR>$etat"; } avec la fonction : sub check_url{ my ($url); $url = $_[0]; my $ua = LWP::UserAgent->new; $ua->timeout(15); $ua->agent('Lueur.org/LaVague'); $ua->env_proxy; my $response = $ua->get('$url'); if ($response->is_success) { return "ok"; } else { return $response->code; } } et là j'ai erreur 400 pour tous les liens et je ne sais pas quoi faire !
pierrickg Posté(e) le 1 novembre 2006 Auteur Posté(e) le 1 novembre 2006 en fait ça marche mais il faut faire gaffe aux ' et " !!! dans $ua->get('$url'); mais en fait un truc en moins de lignes donne la même chose et évite les attentes trop longues : my $ua = LWP::UserAgent->new; $ua->timeout(15); $ua->agent('Lueur.org/LaVague'); $ua->env_proxy; my $response = $ua->get("$url"); if ($response->is_success) { return "ok"; } else { return $response->code; } si ça peut vous servir :)
theocrite Posté(e) le 2 novembre 2006 Posté(e) le 2 novembre 2006 Merci pour la réponse Je rajoute [perl] et [résolu] (et des balises code)
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.