Aller au contenu

FireFox Saved Webpages Transformer, Aidez moi !


MaximuS

Sujets conseillés

J'ai fait un script qui pourrait être utile à beaucoup d'entre vous. En ce moment, il marche aléatoirement.

Je serais très honoré si vous pouviez l'améliorer.

Tout ce que vous avez besoin de savoir est écrit dans le fichier juste après "<? if(!$action){ ?>" .

=> Il est encodé en UTF-8 .

Merci d'avance ;-)

<?='<?xml version="1.0" encoding="utf-8"?>'."\n"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta name="DC.Rights" content="Do what you wanna do with this, i don't care;-)" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<title>FireFox Saved Webpages Transformer</title>
</head>
<body>
<h1>FireFox Saved Webpages Transformer</h1>
<? if(!$action){ ?>
<p><acronym title="FireFox Saved Webpages Transformer">FSWT</acronym> est un petit script qui sera peut-être utile aux utilisateurs de FireFox.</p>
<h2>Description du problème</h2>
<p>Si vous enregistrez plusieurs pages d'un site sous FireFox, vous avez 3 choix:</p>
<ol>
<li>Enregister la page et les fichiers associés (feuilles de style, images, etc...)</li>
<li>Enregistrer le code HTML seulement</li>
<li>Enregister le texte de la page</li>
</ol>
<p>Le 3ème choix ne concerne pas le problème;
Si vous n'enregistrez que le code HTML, les liens seront laissés en relatif et absolu dans le code source, une fois déconnecté (ou sur un autre ordinateur, etc...) les feuilles de style et les images ne seront pas chargés.</p>
<p>Le premier choix résout ce problème en apparence, mais que ce passe-t-il lorsque vous enregistrez une trentaine de pages ? Vous avez droit à une trentaine de dossiers en plus. Avec les mêmes choses à l'intérieur de chacun d'eux. Désagréable.</p>
<p>Ce script que vous pouvez considérer futile consiste à faire un seul dossier de ressources pour plusieurs pages web enregistrées et faire toutes les pages pointer vers ce dossier.<br />
Dans le cas évoqué plus haut, vous vous retrouverez donc avec <strong>31</strong> éléments dans votre dossier.</p>
<p>Ce script PHP ne marchera que sur votre serveur local (ou distant, mais il faudra uploader tous les fichiers: grosse perte de temps).<br />
Vous devez placer ce fichier dans dans le dossier où se trouve tous vos fichiers enregistrés (de <acronym title="FireFox">FF</acronym> bien entendu) et rien d'autre.</p>
<h2>Notes:</h2>
<ol>
<li>Tous les dossiers doivent contenir la même chose.</li>
<li>Tout doit être chmodé en 0777.</li>
<li>Ce fichier DOIT s'appeller <strong>FireFox_Saved_Webpages_Transformer.php</strong> .</li>  
<li>Ce script n'est pas infaillible, ne placez que des copies dans le dossier.</li>
<li>Le script "n'a pas de débuggueur", il ne vous indiquera pas les erreurs qui se sont passés.</li>
</ol>
<h2>Action !</h2>
<p>> <a href="?action=group">Grouper mes fichiers html</a></p>

<? } elseif($action=="group"){
function videur($path){
$dir=opendir("$path");
while($file = readdir($dir)){
unlink($path.$file); } }

function groupfolders($path){
$dir=opendir("$path");
while($file = readdir($dir)){ $i++;
if(($file != ".") && ($file != "..") && ($file != ".DS_Store") && ($file != ".FBCLockFolder") &&  ($file != "FireFox_Saved_Webpages_Transformer.php")){
if(is_file($path.$file)){ $modfiles++;
$handle=fopen("$path.$file","r");
$fread=fread($handle,filesize("$path.$file")); fclose($handle);
$ext = strrchr($file, "."); $newf=str_ireplace($ext,"",$file);
echo "<h2>Avant</h2><p><code>$fread</code></p>";
$nouveaucontenu=str_ireplace($newf."_files/","fichiers_associes/",$fread);
echo "<h2>Après</h2><p><code>$nouveaucontenu</code></p>";
$handle2=fopen("$path.$file","w");
fwrite($handle2,$nouveaucontenu); fclose($handle2);
}
if(is_dir($path.$file)){  $moddirs++;
if($moddirs==1){ rename($path.$file,$path."fichiers_associes/"); } else {
videur($path.$file."/"); rmdir($path.$file); } }
} } }
groupfolders("./");
}

echo "<p>$modfiles fichiers modifiés</p>";
echo "<p>$moddirs dossiers modifiés</p>";
?>
<!-- Pour la petite histoire, je me suis rendu compte de l'utilité du script après avoir downloadé l'intégralité du (très bon) site de Eric Daspet (Ganf) http://blog.dreams4net.com/ -->
<!-- Avec la participation de: -->
</body>
</html>

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...