Script PHP de test des liens sur une page Web

Link Checker parcourt toutes les pages d'un site et détecte les liens brisés et les redirections.

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 positionnement.

Ce programme est une alternative au programme Xenu, il présente l'avantage de regrouper les résultats par pages testées, ce qui facilite l'édition, et il est portable.
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 source Scriptol ou PHP. Il fonctionne avec PHP 5 sur quasiment tous les systèmes d'exploitation et modèles d'ordinateurs.

Une version de Link Checker avec interface utilisateur graphique est aussi disponible. Elle est plus difficile à installer mais plus facile à utiliser.

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:

https://www.example.com/index.php

Les options:

-r recursif, suivre les liens internes. Par défaut seule la page est testée.
-s liste courte (short) affiche seulement les liens brisés et les liens sur des pages redirigées, sur le site.
-f accéléré (fast), en réduisant l'attente du serveur. Par défaut 5 secondes, on peut définir le délai
   en ajoutant une valeur après -f.
-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.

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.

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.

Noter que la plupart du temps, le programme affiche un message à la place du code HTTP:

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.

Avec l'option -s, seuls sont pris en compte les codes:

Versions

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.

  1. Télécharger l'archive au format zip,
  2. la décompresser,
  3. ouvrir une fenêtre de ligne de commande et
  4. exécuter le programme dans la fenêtre selon la commande donnée plus haut.

Script gratuit sous licence GNU GPL 2.0

Voir aussi...

Unredir
Pour un site statique uniquement, teste les liens brisés et les redirections. Dans le second cas il remplace l'URL par sa nouvelle adresse.