La fonction about:cache de Firefox (à taper dans la barre d’adresse) permet d’afficher les éléments qui ont été mis en cache. Un jour j’ai eu à récupérer un fichier CSS que j’avais supprimé par erreur mais qui était toujours dans le cache. J’ai donc pu voir mon fichier mais en affichage hexadécimal :
Si on fait « Fichier » > « Enregistrer sous… » on peut enregistrer ces données dans un fichier (nomé Cache entry information.xhtml par défaut). J’ai donc écrit un outil qui permet d’extraire les données en affichables pour les écrire en binaire. Cet outil est écrit en PHP-CLI (Command Line Interface) et s’utilise comme ceci :
php cache2bin.php "Cache entry information.xhtml" "test.gif" |
Vous pouvez le télécharger à cette adresse si cela vous intéresse :
Pour l’exécuter il faudra surement le renommer en .php et ajouter les droit d’exécution sur Linux.
Personnalisation
Si vous avez besoin de faire la même chose mais pour un fichier ne provenant pas du cache de Firefox, ce programme peut marcher en l’état, mais si ce n’est pas le cas, il n’y aura sûrement que deux choses à faire :
- Remplacer $ereg par l’expression régulière correspondant à votre fichier.
- Remplacer $data_per_line par le nombre d’octets affichés par ligne.
Par exemple pour un fichier généré par la commande Linux hexdump on aurait $data_per_line qui reste à 16 et pour $ereg :
$ereg = "/[0-9a-f]{8}: ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) - ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2}) ([0-9A-F ]{2})/"; |
Merci pour cet article.
Hello
J’ai le même soucis que tu as eu. J’ai effacé un fichier CSS par erreur et j’ai pensé également à le récupérer via le cache de mon navigateur. J’ai donc le fameux fichier Cache entry information.xhtml.
En testant ton script qui s’exécute sans difficulté, j’obtient un fichier qui est toujours illisible pour récupérer mon CSS …
Y a-t-il une solution ?
Merci d’avance
Cordialement
Gilles
PS Pensez à mettre votre adresse http et @ dans votre code source.
Sinon, j’ai aussi trouvé :
http://ckdo.blogspot.com/2006/08/accdez-aux-fichiers-du-cache-internet.html