Script PHP de test des liens sur une page Web
Link Checker est un script qui parcourt toutes les pages d'un site et detecte les liens brisés et les redirections.
Ce programme est une alternative au programme Xenu, il présente l'avantage
de regrouper les résultats par page, ce qui facilite l'édition
du site, et sa grande portabilité.
Par rapport au valideur en ligne du W3C il présente l'avantage de ne
pas bloquer sur certaines pages.
En outre ce programme open source est facile à modifier grâce au code Scriptol et PHP.
Pourquoi un testeur de lien
Le testeur de liens brisés est un outil indispensable à l'entretien d'un site, vis à vis des utilisateurs et des moteurs de recherche. Il convient de supprimer tous les liens brisés ainsi que de mettre à jour les redirections, qu'elles soient externes ou internes au site, pour la bonne image du site, et pour un meilleur référencement.
Commandes et utilisation
Le script en ligne de commande peut être exécuté par le compilateur Scriptol PHP:
solp linche [options] page
ou directement par l'interpréteur PHP 5:
php linche.php [options] page
La page est une URL complète de la forme:
http://www.scriptol.fr/index.php
Les options:
-r recursif, suivre les liens internes. Par défaut seule la page est testée.
-v verbeux, affiche tous les liens testé, avec le code d'en-tête trouvé.
Par défaut affiche seulement les erreurs.
-q quiet, silencieux, n'affiche rien.
Le programme produit un fichier nommé links.log qui reprend tous les résultats et que l'on sauvera sous un autre nom si on veut le conserver.
Messages d'erreur et actions à accomplir
Lorsque le script tente d'accéder à une page, le serveur peut retourner différent code selon le status de la page. Celle-ci peut être redirigée soit par le fichier .htaccess ou par un script PHP, elle peut être manquante.
200 OK. Page trouvée.
301 Redirect permanent. La page est redirigée de façon permanente. Le lien doit être modifié.
302 La page est temporairement redirigée. Il n'y a rien à faire.
400 Bad request. Syntaxe de la requête non comprise par le serveur.
401 Unauthorized. Accès refusé.
403 Forbidden. Le serveur refuse l'accès au script.
404 Page not found. Lien brisé.
500 Internal server error. Problème sur le serveur.
Noter que la plupart du temps, le programme affiche un message à la place du code HTTP:
OK Correspond à 200.
Bad URL Problème avec le serveur. Essayer plus tard ou supprimer le lien.
Broken. Code 404 de lien brisé, le supprimer ou rechercher la page.
Redirect. Correspond à 301, mettre le lien à jour.
De ces divers codes, autres que le code OK on ne tiendra pas compte tant que la page est accessible, sauf les redirections permanentes qui doivent être mises à jour.
Pour la liste complète des codes et leur signification, voir le document Code HTTP.
Compatibilité
Le script fonctionne avec PHP 5 sur quasiment tous les systèmes d'exploitation et modèles d'ordinateurs.
Les résultats fournis par le script sont perfectibles. Quelque fois un lien est signalé "broken" alors que la page est accessible avec le navigateur. Cela vient d'un temps de réponse trop long, ou du serveur. Dans ce cas il suffit d'ignorer le résultat.
Obtenir le programme et licence
Ce link checker est sous licence GNU GPL 2.0. Pour pouvez l'utiliser gratuitement
et librement. Si vous distribuez l'archive, vous devez conserver le copyright
en tête du code source Scriptol et PHP.
Les modifications et améliorations éventuelles du code doivent
être fournies sous forme de code open source Scriptol et PHP, même
si vous utilisez le programme modifié en ligne.
Si PHP n'est pas installé, il faut télécharger l'interpréteur
en version 5 sur php.net.
- Télécharger l'archive au format zip,
- la décompresser,
- ouvrir une fenêtre de ligne de commande et
- exécuter le programme dans la fenêtre selon la commande donnée plus haut.
Le programme peut aussi être téléchargé sur ![]()
(c) 2008-2009 Denis Sureau - Script gratuit sous licence GNU GPL 2.0