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);
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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.
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.
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 !-)
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
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 !-)
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).
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 !-)
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).