OVH Cloud OVH Cloud

Verifier la validite de liens dans une BDD

2 réponses
Avatar
Jeanmi
Salut a tous !

J'aimerai vérifier la validité d'une liste de liens stockés dans une
base de donnée mysql.
J'ai essayé ca mais le traitement est trop long (il y a beaucoup de liens):

if($fp = fopen($site, 'r'))
{
print "$i Le site $site est ok <br>";
}
else
{
fclose($fp);
}

Avez-vous d'autres solutions ?????

Merci de votre aide

2 réponses

Avatar
Gerard
Salut a tous !

J'aimerai vérifier la validité d'une liste de liens stockés dans une
base de donnée mysql.
J'ai essayé ca mais le traitement est trop long (il y a beaucoup de liens):

if($fp = fopen($site, 'r'))
{
print "$i Le site $site est ok <br>";
}
else
{
fclose($fp);
}

Avez-vous d'autres solutions ?????

Merci de votre aide


Perso, je fais cette vérification avec un script (le même que le tien)
lancé par cron. Le script positionne un flag dans la base de données
pour chaque lien trouvé brisé. En plus je marque la date et l'heure de
la vérification pour ne checker que les liens les plus anciennement visités.
Le problème de cette méthode, c'est que le script va considérer que le
serveur est up, même s'il te renvoit une page 404.

QQ1 a une idée pour plus de précision ???

@++

GG

--
---------------------------------------------
http://gerardgrandjean.net

Avatar
Bruno Desthuilliers
Salut a tous !

J'aimerai vérifier la validité d'une liste de liens stockés dans une
base de donnée mysql.
J'ai essayé ca mais le traitement est trop long (il y a beaucoup de liens):

if($fp = fopen($site, 'r'))
{
print "$i Le site $site est ok <br>";
}
else
{
fclose($fp);
}


Si tu arrive à ouvrir la ressource, tu la laisse ouverte, mais si tu
n'arrive pas à la fermer, tu la referme ??? Etonnant !-)

Avez-vous d'autres solutions ?????


http://www.php.net/manual/en/function.get-headers.php

Par ailleurs, c'est typiquement un cas d'utilisation pour un traitement
batch. Si tu a accès au serveur (via ssh par exemple), fais-en plutôt
une tâche de fond à exécuter automatiquement et régulièrement (regarde
du côté de cron pour ça). Sinon, un script côté serveur qui se contente
de retourner la liste d'URLs (format CSV par exemple), un script côté
client qui récupère cette liste (via une requête HTTP), vérifie les urls
et retourne la liste d'erreur soit sous forme de texte sur le poste
client (corrections manuelles ensuite), soit à un second script côté
serveur pour correction/suppression automatique (requête HTTP encore,
avec en post ou en get la liste des urls invalides).

Mes deux centimes...
Bruno