Script de vérification d'urls

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Blacksnake
Arias
Messages : 2
Inscription : 12 mars 2008, 22:03

Script de vérification d'urls

Message par Blacksnake »

Bonjour à tous.
Je viens vous soumettre un problème que je n'arrive pas à résoudre :

Mon site propose un grand nombre de fichiers en DDL sur des serveurs dédiés, or, il est impossible de contrôler chaque lien un par un pour vérifier lesquels sont morts ou pas.

J'ai donc trouvé un script pour le faire à ma place. Voici les deux fichiers (au format txt) que je vais utiliser :

http://www.animes-folie.com/check_url.txt (fichier principal)
http://www.animes-folie.com/urlCodes.inc.txt (liste des réponses à retourner).

Il se trouve que ce script fonctionne très bien pour vérifier des noms de domaines, ou la présence de petits fichiers sur des serveurs externes. Mais dès que le fichier à vérifier est gros (200 Mo), le script pédale dans la choucroute pendant 5 minutes, avant de retourner une erreur comme quoi le fichier est trop volumineux.
Pour des fichiers d'une cinquantaine de Mo, le script fonctionne, et retourne le message "OK", mais seulement au bout d'une minute environ...

J'en déduis que le script fait une analyse complète du fichier pour vérifier s'il est bien présent, ce qui est complètement idiot... Un seul échantillon de quelques bytes suffirait amplement pour affirmer que le fichier est bel est bien en ligne. Mais comment ajouter une telle variable ? (pour limiter l'analyse à une centaine de bytes).

Merci d'avance pour votre aide :)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

À mon avis, il faudrait faire une requête HEAD plutôt que GET, car on n'a pas du tout besoin du contenu... la requête HEAD demande uniquement les entêtes HTTP.

Code : Tout sélectionner

puts($sockd, "GET ".$parts[path]." HTTP/1.0\n");
à remplacer par

Code : Tout sélectionner

puts($sockd, "HEAD ".$parts[path]." HTTP/1.0\n");
Je ne sais pas si c'est supporté, ni si le script ne regarde pas plus en détail ce qui se passe, mais je pense que c'est dans cette direction qu'il faut creuser :wink:
Blacksnake
Arias
Messages : 2
Inscription : 12 mars 2008, 22:03

Message par Blacksnake »

Ca marche ! :D

J'ai fait exactement comme tu m'as dit, et le script fonctionne maintenant exactement comme je le veux, c'est à dire qu'il lui faut une demie seconde pour vérifier un fichier :P

Merci énormément Calimo de t'être penché sur le problème :wink:

Peut-être à bientôt, ce forum m'a l'air très intéressant :)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités