Vous êtes à : Accueil > Nos techniques > Quelques scripts

Passer le menu Aller au pied de page

Licences Joueb English version Accessibilité

Quelques scripts.

Page méchamment en travaux !

Compiler du php vers du html

À quoi sert ce script ? Si vous n’employez php que pour générer des pages statiques, il ne sert à rien de les générer à chaque requête. Ce script enregistre le rendu de votre page index.php, teste si un fichier index.html existe déjà dans le même répertoire. Si oui, alors il teste s’ils sont identiques ou non. En fonction, il crée, écrase ou efface le fichier index.html.

#!/bin/bash

chemin=`pwd`
wget http://localhost${chemin:8}/index.php -q -O /tmp/index.html
 if [ $? -ne 0 ]
# Si la commande wget a renvoyé une erreur   …
	    then 
		echo "Erreur au téléchargement de http://localhost/${chemin:8}/index.html."
	    else 
# Si la commande wget n’a pas renvoyé d’erreur   …
	    sed -i "/<head>/ i <!-- Version compilée en html selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->\n" /tmp/index.html
# On marque le fichier obtenu.
		if [ -f index.html ]
# On regarde si le dossier dans lequel se trouvait le fichier index.php actuellement compilé contenait déjà un fichier index.html.
		then
		    DIFF=$(diff $chemin/index.html /tmp/index.html)
#index.html existe déjà, on compare la version obtenue et la version actuelle.
 		    if [ "$DIFF" != "" ]
 		    then
# Si les fichiers sont différents…
			mv /tmp/index.html index.html
			sed -i "/<head>/ i <!-- Version compilée en html selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->\n" index.html
			echo "Index.html écrasé."
# On stocke dans le tableau l’adresse de la page écrasée et on écrase le fichier index.html avec la version générée par wget.
 		    else
# Si le fichier index.html qui existait déjà et le fichier index.html obtenu avec wget sont identiques  …
			echo "Index.html identique."
			rm /tmp/index.html
# Alors on stocke dans le tableau l’adresse de la page ignorée et on efface le fichier généré par wget.
		    fi
		else
# Le fichier index.html n’existait pas.
		    mv /tmp/index.html index.html
		    sed -i "/<head>/ i <!-- Version compilée en html selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->" index.html
		    echo "Index.html crée."
# On stocke l’adresse du fichier crée dans le tableau et on déplace la version fabriquée par wget dans le dossier
		fi
	    fi

Télécharger ce script.

Cette mise en bouche prépare surtout à la compréhension du script suivant, qui compile tout votre site en un coup.

Compiler du php vers du html

L’utilité de ce script est détaillée dans la rubrique php, nous n’évoquons ici que l’aspect technique de la chose.

#!/bin/bash

# php_vers_html version 1.1
# Par le ouebmestre de micr0lab
# Licence art libre ( http://artlibre.org/ ) : vous êtes libres de copier,
# diffuser et transformer librement les oeuvres dans le respect des droits de
# l'auteur.
# Ce script «  compile » votre site en php vers un site en html. Bien
# évidemment, cela suppose que vous n’employez php que pour gérer des inclusions
# et des calculs, et non pas pour rendre votre site interactif, auquel cas la
# compilation vers du html casserait l’interactivité de votre site. Il permets
# d’effectuer une fois pour toute les calculs sur votre ordinateur, plutôt que de 
# les faire faire à votre serveur à chaque requête.


# Ce script est fourni tel quel, il est préférable de comprendre son
# fonctionnement avant de chercher à l’employer, le ouebmestre de micr0lab ne
# serait être responsable d'un quelconque effet indésirable engendré par l'emploi 
# de ce script.

# Votre attention est notamment attirée sur le fait que si un fichier index.html
# existait déjà dans un dossier où se trouve un fichier index.php, et que ce
# fichier est différent du rendu statique obtenu à partir du fichier index.php,
# alors ce fichier index.html sera écrasé.

# Pour que ce script soit utile, pensez à préciser dans le fichier .htaccess à
# la racine de votre site (sans le # le précédant) : 
# DirectoryIndex index.html index.php
# Ainsi, la page index.html sera servie par défaut, et si elle n’existe pas,
# alors sera affichée index.php.

# Bonne compilation !

# Changements avec la version 1 : 
# Désormais, les résultats des téléchargements, et la mise à jour ou non du
# fichier index.html ne sont plus affichées au fur et à mesure, mais stockées dans 
# des variables, triées, et affichées à la fin.


#####################
# À personnaliser      ! #
####################

# L’adresse locale de votre site.
path=http://localhost/micr0lab/
# Le chemin du dossier où se trouve votre site.
dossier=/donnees/micr0lab/

# Ici, on suppose que votre site est constitué de dossiers qui contiennent
# chacun au plus une page en php à compiler.
# On suppose que cette page se nomme index.php, elle est ainsi affichée par
# défaut lorsque l’on entre simplement le chemin du dossier.

# On commmence fixer comme série de paramètres la liste des fichiers php à
# compiler : 
set `find $dossier -name "index.php" -o -path "*/sites/*" -prune -type f`
# Ici, on liste tous les fichiers index.php de tous les dossiers contenus dans
# le chemin $dossier, à l’exception des dossiers qui se trouvent dans le dossier
# "sites".
# Bogue : le fichier /sites/index.php est pris en compte. Ça ne pose pas de
# soucis, mais c’est curieux. Si on veut l’exclure, il suffit de préciser entre «
# -type f  » et « `  » ce qui suit : «  ! -name index.html  ».

# Pour lister simplement tous fichiers index.php de tous les dossiers, faîtes
# set `find $dossier -name "index.php"`

#############################
#Fin de la personnalisation.#
#############################


# Quelques variables (tableaux et compteurs) pour stocker respectivement…
# Les erreurs au téléchargement
declare -a erreurs_telechargement
declare -i compt_erreurs_telechargement=0
# Les fichiers crées
declare -a nouveaux_fichiers
declare -i compt_nouveaux_fichiers=0
# Les fichiers écrasés
declare -a fichiers_ecrases
declare -i compt_fichiers_ecrases=0
# Les fichiers ignorés
declare -a fichiers_ignores
declare -i compt_fichiers_ignores=0
#Pour dater la compilation
jour=$(date +%D)
heure=$(date +%T)



for fich
# Pour chacun des fichiers index.php trouvé…
do
    wget $path${fich:${#dossier}} -q -O /tmp/index.html
# On enregistre une version html que l’on sauvegarde dans /tmp/index.html à l’aide de wget.
	    if [ $? -ne 0 ]
# Si la commande wget a renvoyé une erreur   …
	    then 
		let "compt_erreurs_telechargement= $compt_erreurs_telechargement + 1"
		erreurs_telechargement[$compt_erreurs_telechargement]=$path${fich:${#dossier}:-3}html
		rm /tmp/index.html
# On stocke dans le tableau l'adresse de la page pour laquelle il y a eu une erreur et on supprime le fichier /tmp/index.html.
	    else 
# Si la commande wget n’a pas renvoyé d’erreur   …
	    sed -i "/<head>/ i <!-- Version compilée en html selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->\n" /tmp/index.html
# On marque le fichier obtenu.
		if [ -f ${fich:0:-10}/index.html ]
# On regarde si le dossier dans lequel se trouvait le fichier index.php actuellement compilé contenait déjà un fichier index.html.
		then
		    DIFF=$(diff ${fich:0:-10}/index.html /tmp/index.html)
#index.html existe déjà, on compare la version obtenue et la version actuelle.
 		    if [ "$DIFF" != "" ]
 		    then
# Si les fichiers sont différents…
			let "compt_fichiers_ecrases= $compt_fichiers_ecrases + 1"
			fichiers_ecrases[$compt_fichiers_ecrases]=$path${fich:${#dossier}:-3}html
			mv /tmp/index.html ${fich:0:-10}/index.html
			#sed -i "/<head>/ i <!-- Version compilée en html le $jour vers $heure selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->\n" ${fich:0:-10}/index.html
# On stocke dans le tableau l’adresse de la page écrasée et on écrase le fichier index.html avec la version générée par wget.
 		    else
# Si le fichier index.html qui existait déjà et le fichier index.html obtenu avec wget sont identiques  …
			let "compt_fichiers_ignores= $compt_fichiers_ignores + 1"
			fichiers_ignores[$compt_fichiers_ignores]=$path${fich:${#dossier}:-3}html
			rm /tmp/index.html
# Alors on stocke dans le tableau l’adresse de la page ignorée et on efface le fichier généré par wget.
		    fi
		else
# Le fichier index.html n’existait pas.
		    let "compt_nouveaux_fichiers= $compt_nouveaux_fichiers + 1"
		    nouveaux_fichiers[$compt_nouveaux_fichiers]=$path${fich:${#dossier}:-3}html
		    mv /tmp/index.html ${fich:0:-10}/index.html
		    sed -i "/<head>/ i <!-- Version compilée en html le $jour vers $heure selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->" ${fich:0:-10}/index.html
# On stocke l’adresse du fichier crée dans le tableau et on déplace la version fabriquée par wget dans le dossier
		fi
	    fi
done


#####
# Désormais, on affiche les résultats.
echo -e "\n"

# Pour les pages laissées intactes :
if [ "$compt_fichiers_ignores" != "0" ] 
then
    echo -e "********************* \n* Ont été ignorés : *\n*********************"
    while [ "$compt_fichiers_ignores" != "0" ]
    do 
	echo ${fichiers_ignores[$compt_fichiers_ignores]}
	let "compt_fichiers_ignores = $compt_fichiers_ignores -1"
    done
    echo -e "\n"
else
    echo -e "*********************\n* Tous les fichiers ont été modifiées ou crées ! *\n*********************\n"
fi

#Pour les pages en erreurs : 
if [ "$compt_erreurs_telechargement" != "0" ] 
then
    echo -e "****************************** \n* Erreur au téléchargement : *\n******************************"
    while [ "$compt_erreurs_telechargement" != "0" ]
    do 
	echo ${erreurs_telechargement[$compt_erreurs_telechargement]}
	let "compt_erreurs_telechargement = $compt_erreurs_telechargement -1"
    done
    echo -e "\n\n"
else
    echo -e "************************************\n* Aucune erreur au téléchargement. *\n************************************\n\n"
fi

# Pour les pages créées :
if [ "$compt_nouveaux_fichiers" != "0" ] 
then
    echo -e "********************* \n Ont été crées :\n*********************"
    while [ "$compt_nouveaux_fichiers" != "0" ]
    do 
	echo ${nouveaux_fichiers[$compt_nouveaux_fichiers]}
	let "compt_nouveaux_fichiers = $compt_nouveaux_fichiers -1"
    done
    echo -e "\n\n"
else
    echo -e "*******************************\n* Aucun nouveau fichier crée. *\n*******************************\n\n"
fi 

# Pour les pages écrasées :
if [ "$compt_fichiers_ecrases" != "0" ] 
then
    echo -e "**********************\n* Ont été écrasées : *\n**********************"
    while [ "$compt_fichiers_ecrases" != "0" ]
    do 
	echo ${fichiers_ecrases[$compt_fichiers_ecrases]}
	let "compt_fichiers_ecrases = $compt_fichiers_ecrases -1"
    done
    echo -e "\n\n"
else
    echo -e "*************************\n* Aucun fichier écrasé. *\n*************************\n\n"
fi 

### Fin de l’affichage des résultats.

Télécharger ce script.

Valider un site d’un script

Ce script sert à valider tout un site avec le validateur du W3C couplé au validateur validator.nu installés en local. L’utilité d’avoir un site conforme à ces recommandations et la façon d’installer ces validateurs sont expliqués ailleurs.

#!/bin/bash

# valide_site version 1.0
# Par le ouebmestre de micr0lab
# Licence art libre ( http://artlibre.org/ ) : vous êtes libres de copier,
# diffuser et transformer librement les oeuvres dans le respect des droits de
# l'auteur.
# Ce script permets de valider en une fois toutes les pages «   index.html » 
# présentes dans un dossier et ses sous-dossiers, à l’aide du validateur
# du W3C. Si ces pages sont en HTML5, il vous faudra également installer
# la validateur http://validator.nu/ et éditer certains fichiers de
# configuration.

# Des informations additionelles se trouvent à http://micr0lab.org/tech/w3c/

# Ce script est fourni tel quel, il est préférable de comprendre son
# fonctionnement avant de chercher à l’employer, le ouebmestre de micr0lab ne
# serait être responsable d'un quelconque effet indésirable engendré par l'emploi 
# de ce script.

# Bonne validation !

#####################
# À personnaliser      ! #
####################

# L’adresse locale de votre site.
path=http://localhost/micr0lab/
# Le chemin du dossier où se trouve votre site.
dossier=/donnees/micr0lab/

# Ici, on suppose que votre site est constitué de dossiers qui contiennent
# chacun au plus une page html à valider.
# On suppose que cette page se nomme index.html, elle est ainsi affichée par
# défaut lorsque l’on entre simplement le chemin du dossier.

# On commmence fixer comme série de paramètres la liste des fichiers html à
# valider : 
set `find $dossier -name "index.html" -o -path "*/sites/*" -prune -type f`
# Ici, on liste tous les fichiers index.html de tous les dossiers contenus dans
# le chemin $dossier, à l’exception des dossiers qui se trouvent dans le dossier
# "sites".

# Pour lister simplement tous fichiers index.html de tous les dossiers, faîtes
# set `find $dossier -name "index.html"`

# On peut également exclure plusieurs dossiers et fichiers.
# Supposons que vous souhaitiez valider tous les fichiers php et html,
# à l’exception de ceux se trouvant dans les dossiers (et les dossiers
# contenus dans) dossier1 et dossier2.
# De plus, vous ne voulez pas valider les fichiers fichier1.php et fichier2.html.
# Il faut alors quelque chose comme : 
# set `find  \( -name dossier1 -prune -o -name dossier2 -prune  \) -o \( -iname "*.php" -type f -o -iname "*.html" -type f \) ! \( -name fichier1.php -o -name fichier2.html \)`

#############################
#Fin de la personnalisation.#
#############################


# Des tableaux pour stocker les valeurs
# Pour stocker respectivement le nom des fichiers valides, le nom des fichiers invalides, les avertissements des pages valides, les avertissements des pages non valides, les erreurs des pages non valides et le nombre de page avec le statut "Abort".
declare -a tableau_va
declare -a tableau_non_va
declare -a avertisstements_va
declare -a avertissements_non_va
declare -a erreurs_non_va
declare -a abort

# Des compteurs, nombre de pages en Abort, de pages valides, de pages non-valides.
declare -i compt_ab=0
declare -i compt_va=0
declare -i compt_non_va=0

for fich
do 
# On regarde l'en-tete renvoyé par le validateur, et on le stocke dans un fichier texte temporaire
    HEAD http://localhost/w3c-validator/check?uri=$path${fich:${#dossier}} > tmp.txt
# Une étude avancée de ce que renvoit cette commande est préférable pour comprendre la suite.

# On récupére le X-W3C-Validator-Status, qui peut valoir Valid, Invalid, Abort
	    if ( ( tail -2 tmp.txt | head -1 ) | grep "Abort" > /dev/null)
	    then
# Si Abort est trouvé dans cette chaîne :
		let "compt_ab = $compt_ab + 1"
		abort[$compt_ab]=$path${fich:${#dossier}}
# Sinon pas d'abort, le test a eu lieu. On ne regarde pas si ça vaut valide ou invalide, on regarde directement le nombre d'erreurs :
	    else 
		nb_erreurs=`head -11 tmp.txt | tail -1`
		nb_erreurs=${nb_erreurs:24}
# et le nombre d'avertissements :
		nb_avertissement=`head -14 tmp.txt | tail -1`
		nb_avertissement=${nb_avertissement:26}
# Si le nombre d'erreurs est supérieur à 1
		if [ $nb_erreurs -gt 0 ]
		then 
# On stocke dans tableau_non_va l'adresse de la page non valide
		    let "compt_non_va = $compt_non_va + 1"
		    tableau_non_va[$compt_non_va]=$path${fich:${#dossier}}
# Et dans avertissements_non_va et erreurs_non_va le nombre d'erreurs
		    avertissements_non_va[$compt_non_va]=$nb_avertissement
		    erreurs_non_va[$compt_non_va]=$nb_erreurs
# Sinon, si le nombre d'erreurs est égal à 0
		else 
		    let "compt_va = $compt_va + 1"
		    tableau_va[$compt_va]=$path${fich:${#dossier}}
# On ne stocke que les avertissements
		    avertissements_valides[$compt_va]=$nb_avertissement
		fi
	    fi
done

# La boucle terminee, on supprime le fichier temporaire
rm tmp.txt

############################
# Affichage des résultats. #
############################

# Pour les pages en statut abort :
if [ "$compt_ab" != "0" ] 
then
    echo "Erreur (Abort) :"
    while [ "$compt_ab" != "0" ]
    do   
	echo ${abort[$compt_ab]}
	let "compt_ab = $compt_ab - 1"
    done
else
    echo "Aucun fichier en erreur (abort)."
fi

# Pour les pages en statut non valides :
if [ "$compt_non_va" != "0" ] 
then
    echo "Ne sont pas valides :"
    while [ "$compt_non_va" != "0" ]
    do   
	echo ${tableau_non_va[$compt_non_va]} "("${erreurs_non_va[$compt_non_va]}" erreur(s) et "${avertissements_non_va[$compt_non_va]} "avertissement(s))."
	let "compt_non_va = $compt_non_va - 1"
    done
else
    echo "Tous vos fichiers sont valides."
fi

# Pour les pages en statut valides :
if [ "$compt_va" != "0" ] 
then
    echo "Sont valides :"
    while [ "$compt_va" != "0" ]
    do   
	echo ${tableau_va[$compt_va]} "("${avertissements_valides[$compt_va]}" avertissement(s))."
	let "compt_va = $compt_va - 1"
    done
else
    echo "Aucun fichier valide."
fi

Télécharger ce script.

Compiler puis valider un site d’un script

Ce script couple les deux scripts précédents : il « compile » tout votre site du php vers le html, puis valide les pages html nouvellement créés. Une compréhension poussée des deux scripts précédents est hautement souhaitée, les pré-requis sont les mêmes : avoir un validateur installé localement, que votre site ne soit composé que de pages index.php, une certaine organisation des dossiers et de la façon d’accéder à votre site en local, etc.

#!/bin/bash

# php_vers_html_puis_valide version 1.0
# Par le ouebmestre de micr0lab
# Licence art libre ( http://artlibre.org/ ) : vous êtes libres de copier,
# diffuser et transformer librement les oeuvres dans le respect des droits de
# l'auteur.
# Ce script «  compile » votre site en php vers un site en html, puis valide la
# page obtenue. Bien évidemment, cela suppose que vous n’employez php que pour 
# gérer des inclusions et des calculs, et non pas pour rendre votre site interactif,
# auquel cas la compilation vers du html casserait l’interactivité de votre site.
# Il permets d’effectuer une fois pour toute les calculs sur votre ordinateur, plutôt 
# que de les faire faire à votre serveur à chaque requête.
# Les pages nouvellement générées sont envoyés au validateur en local sur votre machine, 
# et les résultats sont affichés.

# Ce script repose largement sur php_vers_html version 1.1.

# Ce script est fourni tel quel, il est préférable de comprendre son
# fonctionnement avant de chercher à l’employer, le ouebmestre de micr0lab ne
# serait être responsable d'un quelconque effet indésirable engendré par l'emploi 
# de ce script.

# Votre attention est notamment attirée sur le fait que si un fichier index.html
# existait déjà dans un dossier où se trouve un fichier index.php, et que ce
# fichier est différent du rendu statique obtenu à partir du fichier index.php,
# alors ce fichier index.html sera écrasé.

# Pour que ce script soit utile, pensez à préciser dans le fichier .htaccess à
# la racine de votre site (sans le # le précédant) : 
# DirectoryIndex index.html index.php
# Ainsi, la page index.html sera servie par défaut, et si elle n’existe pas,
# alors sera affichée index.php.

# Bonne compilation et validation  !


#####################
# À personnaliser      ! #
####################

# L’adresse locale de votre site.
path=http://localhost/micr0lab/
# Le chemin du dossier où se trouve votre site.
dossier=/donnees/micr0lab/

# Ici, on suppose que votre site est constitué de dossiers qui contiennent
# chacun au plus une page en php à compiler.
# On suppose que cette page se nomme index.php, elle est ainsi affichée par
# défaut lorsque l’on entre simplement le chemin du dossier.

# On commmence fixer comme série de paramètres la liste des fichiers php à
# compiler : 
set `find $dossier -name "index.php" -o -path "*/sites/*" -prune -type f ! -name index.html`
# Ici, on liste tous les fichiers index.php de tous les dossiers contenus dans
# le chemin $dossier, à l’exception des dossiers qui se trouvent dans le dossier
# "sites".
# Bogue : le fichier /sites/index.php est pris en compte. Ça ne pose pas de
# soucis, mais c’est curieux. Si on veut l’exclure, il suffit de préciser entre «
# -type f  » et « `  » ce qui suit : «  ! -name index.html  ». Ce que l’on fait ici.

# Pour lister simplement tous fichiers index.php de tous les dossiers, faîtes
# set `find $dossier -name "index.php"`

#############################
#Fin de la personnalisation.#
#############################


# Quelques variables (tableaux et compteurs) pour stocker respectivement…
# Les erreurs au téléchargement
declare -a erreurs_telechargement
declare -i compt_erreurs_telechargement=0
# Les fichiers crées
declare -a nouveaux_fichiers
declare -i compt_nouveaux_fichiers=0
# Les fichiers écrasés
declare -a fichiers_ecrases
declare -i compt_fichiers_ecrases=0
# Les fichiers ignorés
declare -a fichiers_ignores
declare -i compt_fichiers_ignores=0


for fich
# Pour chacun des fichiers index.php trouvé…
do
    wget $path${fich:${#dossier}} -q -O /tmp/index.html
# On enregistre une version html que l’on sauvegarde dans /tmp/index.html à l’aide de wget.
	    if [ $? -ne 0 ]
# Si la commande wget a renvoyé une erreur   …
	    then 
		let "compt_erreurs_telechargement= $compt_erreurs_telechargement + 1"
		erreurs_telechargement[$compt_erreurs_telechargement]=$path${fich:${#dossier}:-3}html
		rm /tmp/index.html
# On stocke dans le tableau l'adresse de la page pour laquelle il y a eu une erreur et on supprime le fichier /tmp/index.html.
	    else 
# Si la commande wget n’a pas renvoyé d’erreur   …
	    sed -i "/<head>/ i <!-- Version compilée en html selon la méthode décrite à http://micr0lab.org/tech/scripts/#php_vers_html. -->\n" /tmp/index.html
# On marque le fichier obtenu.
		if [ -f ${fich:0:-10}/index.html ]
# On regarde si le dossier dans lequel se trouvait le fichier index.php actuellement compilé contenait déjà un fichier index.html.
		then
		    DIFF=$(diff ${fich:0:-10}/index.html /tmp/index.html)
#index.html existe déjà, on compare la version obtenue et la version actuelle.
 		    if [ "$DIFF" != "" ]
 		    then
# Si les fichiers sont différents…
			let "compt_fichiers_ecrases= $compt_fichiers_ecrases + 1"
			fichiers_ecrases[$compt_fichiers_ecrases]=$path${fich:${#dossier}:-3}html
			mv /tmp/index.html ${fich:0:-10}/index.html
# On stocke dans le tableau l’adresse de la page écrasée et on écrase le fichier index.html avec la version générée par wget.
 		    else
# Si le fichier index.html qui existait déjà et le fichier index.html obtenu avec wget sont identiques  …
			let "compt_fichiers_ignores= $compt_fichiers_ignores + 1"
			fichiers_ignores[$compt_fichiers_ignores]=$path${fich:${#dossier}:-3}html
			rm /tmp/index.html
# Alors on stocke dans le tableau l’adresse de la page ignorée et on efface le fichier généré par wget.
		    fi
		else
# Le fichier index.html n’existait pas.
		    let "compt_nouveaux_fichiers= $compt_nouveaux_fichiers + 1"
		    nouveaux_fichiers[$compt_nouveaux_fichiers]=$path${fich:${#dossier}:-3}html
		    mv /tmp/index.html ${fich:0:-10}/index.html
# On stocke l’adresse du fichier crée dans le tableau et on déplace la version fabriquée par wget dans le dossier
		fi
	    fi
done

###################################################
# Une fonction pour tester la validité de la page, inspirée de valide_site version 1.0.
# Cela nécessite que soit installé et configuré sur votre poste le validateur du W3C, et éventuellement validator.nu.
# Voir http://micr0lab.org/tech/w3c/ et http://micr0lab.org/tech/scripts/ pour plus d’informations.
###################################################

valide_page(){
HEAD http://localhost:8888/?doc=$1 > /tmp/valide_page.txt
  if ( ( tail -2 /tmp/valide_page.txt | head -1 ) | grep "Abort" > /dev/null)
    then
      echo " (Abort)"
    else 
	nb_erreurs=`head -11 /tmp/valide_page.txt | tail -1`
	nb_erreurs=${nb_erreurs:24}
	nb_avertissement=`head -14 /tmp/valide_page.txt | tail -1`
	nb_avertissement=${nb_avertissement:26}
# Si le nombre d'erreurs est supérieur à 1
	if [ $nb_erreurs -gt 0 ]
	  then 
	    echo " (Non valide, $nb_erreurs erreur(s) et $nb_avertissement avertissement(s))"
# Sinon, si le nombre d'erreurs est égal à 0
	  else 
	    echo " (Valide, $nb_avertissement avertissement(s))"
	fi
  fi
rm /tmp/valide_page.txt
}

#######################
# Fin de la fonction. #
#######################

#####
# Désormais, on affiche les résultats.
echo -e "\n"

# Pour les pages laissées intactes :
if [ "$compt_fichiers_ignores" != "0" ] 
then
    echo -e "********************* \n* Ont été ignorés : *\n*********************"
    while [ "$compt_fichiers_ignores" != "0" ]
    do 
	echo ${fichiers_ignores[$compt_fichiers_ignores]}
	let "compt_fichiers_ignores = $compt_fichiers_ignores -1"
    done
    echo -e "\n"
else
    echo -e "*********************\n* Tous les fichiers ont été modifiées ou crées ! *\n*********************\n"
fi

#Pour les pages en erreurs : 
if [ "$compt_erreurs_telechargement" != "0" ] 
then
    echo -e "****************************** \n* Erreur au téléchargement : *\n******************************"
    while [ "$compt_erreurs_telechargement" != "0" ]
    do 
	echo ${erreurs_telechargement[$compt_erreurs_telechargement]}
	let "compt_erreurs_telechargement = $compt_erreurs_telechargement -1"
    done
    echo -e "\n\n"
else
    echo -e "************************************\n* Aucune erreur au téléchargement. *\n************************************\n\n"
fi

# Pour les pages créées :
if [ "$compt_nouveaux_fichiers" != "0" ] 
then
    echo -e "********************* \n Ont été crées :\n*********************"
    while [ "$compt_nouveaux_fichiers" != "0" ]
    do 
	#L’option -n sert à ne pas passer à la ligne.
	echo -n ${nouveaux_fichiers[$compt_nouveaux_fichiers]} 
	valide_page ${nouveaux_fichiers[$compt_nouveaux_fichiers]}
	let "compt_nouveaux_fichiers = $compt_nouveaux_fichiers -1"
    done
    echo -e "\n\n"
else
    echo -e "*******************************\n* Aucun nouveau fichier crée. *\n*******************************\n\n"
fi 

# Pour les pages écrasées :
if [ "$compt_fichiers_ecrases" != "0" ] 
then
    echo -e "**********************\n* Ont été écrasées : *\n**********************"
    while [ "$compt_fichiers_ecrases" != "0" ]
    do 
	#L’option -n sert à ne pas passer à la ligne.
	echo -n ${fichiers_ecrases[$compt_fichiers_ecrases]}
	valide_page ${fichiers_ecrases[$compt_fichiers_ecrases]}
	let "compt_fichiers_ecrases = $compt_fichiers_ecrases -1"
    done
    echo -e "\n\n"
else
    echo -e "*************************\n* Aucun fichier écrasé. *\n*************************\n\n"
fi 

### Fin de l’affichage des résultats.

Télécharger ce script.

Contact :

Contact Plan Lettre F.a.q. C.G.U.