IPB

Willkommen, Gast ( Anmelden | Registrierung )

> Unbenutzte CSS Klassen finden ..., ... oder vielleicht sogar Bilder?
Andreas
Beitrag 18.02.2005 - 11:53
Beitrag #1


____________________
Gruppensymbol

Gruppe: Admin
Beiträge: 1.220
Mitglied seit: 20.10.2001
Mitglieds-Nr.: 3



Hi,

wie das so ist. Man bastelt jahrelang an einer Site und die wächst und wächst und irgendwann weiß man nicht mehr, welche Klasse aus dem Stylesheet man noch benutzt und welche nicht - gleiches gilt für Bilder aus dem "zentralen" Grafiken Ordner ...

Ich benutze TopStyle 3.11 und dort gibt es einen Sitereport, der zumindest für die CSS Klassen das gewünschte erledigt. Das Programm findet unbenutzte Klassen (orphan classes). Die Sache hat nur einen Haken: benutzt man multiple Klassen (class="button rechts klein") erkennt TopStyle das (noch!) nicht :-( Also leider nicht zu gebrauchen.

Kennt jemand ein Tool, welches genau das erledigt? CSS Datei nehmen, gucken wo die innerhalb der Site überall verlinkt ist und die nicht benutzten Klassen anzeigen?

Ähnliches sollte ja auch für Bilder funktionieren: Bildordner auswählen, und Site durchsuchen, welche der im Ordner enthaltenen Bilder/Dateien nicht irgendwo in der Site benutzt wird.

Das würde mich gewaltig nach vorne bringen *g*

Viele Grüße

Andreas
Go to the top of the page
 
+Quote Post
 
Start new topic
Antworten
Andreas
Beitrag 18.02.2005 - 19:02
Beitrag #2


____________________
Gruppensymbol

Gruppe: Admin
Beiträge: 1.220
Mitglied seit: 20.10.2001
Mitglieds-Nr.: 3



Hi Ingo,

sowas schwebte mir im Kopf auch schon vor ... nur faul wie ich bin ... wink.gif

Habe das Script mal ausprobiert. Funktioniert leider nicht so ganz wie erhofft. Ich weiß allerdings noch nicht warum ... ich musste die Pfade ein wenig umbiegen und nun findet er alle Bilder als unbenutzt. Meine Bilder liegen ziemlich woanders, als der Ordner, den ich durchsuchen möchte.

d:\www\filmf1\film\kritiken wird durchsucht und d:\www\filmf1\grafic\jpeg ist der abzugleichende Bilderordner. Also benutze ich
QUELLTEXT
$home = 'd:/www/filmf1/film/kritiken';
$picture_dir = 'd:/www/filmf1/grafic/jpeg';
und das Script läuft auch (fast - bei S geht es in den Timeout wink.gif ) durch. Nur halt mit allen Bildern als unbenutzt.

Mit
QUELLTEXT
$home = 'd:/www/filmf1/film/kritiken';
$picture_subdir = '../../grafic/jpeg';
$picture_dir = $home.'/'.$picture_subdir;
übrigens das gleiche Ergebnis.

Und die Bilder erkennt er offensichtlich, denn die findet er alle :-o

Grüße

Andreas - noch bastelnd
Go to the top of the page
 
+Quote Post
hondocrx
Beitrag 18.02.2005 - 21:43
Beitrag #3


is getting harder


Gruppe: User
Beiträge: 26
Mitglied seit: 24.09.2004
Mitglieds-Nr.: 3.770



eventuell könnte das Script bei den Class-Problem helfen.

Ist nicht das sauberste und auch nur auf einem lokalen Server getestet.
Es werden folgende Dateien untersucht.

htm
html
php
php4
incl

Dabei ist es egal ob Groß oder Keinschreibung

In Zeile 2 Muss der Pfad zu der CSS-Datei rein.
Das Verzeichnes mit der Suchdatei ist als oberstes Verzeichniss anzusehen.


Die Datenstruktur der CSS sollte so aussehen:

QUELLTEXT
.Navi2                 {background-color:#CC0000;}
.Navi3                 {background-color:#FED634;}
.Navi4                             {color:#000000; background-color:#FFEA96;}
a.Navi5:link,  a.Navi5:visited  {text-decoration:none; color:#000000;}
a.Navi5:active, a.Navi5:hover {text-decoration:none; color:#006600;}



Ist eine deklaration mit "/* Navi2 {background-color:#CC0000;}" aukommentiert wird diese trotzdem mit in die Suche einbezogen.

Bekannte Fehler

Es werden auch Definitionen wie body,td,a usw angezeicht da diese nicht über class definiert werden müssen.

Eventuell ist das ganze Ding ja auch schrott.

MfG

QUELLTEXT
<?php
$css_Datei="css/style.css";


function dirlist($dir)
{
$list = array();
$dp = opendir($dir);
while($file = readdir($dp))
{
   if(!is_dir($dir."/" . $file)) $list[] = $dir. "/" . $file;
   else
   {
       if($file != ".." && $file != ".")
       {
           $clist = dirlist($dir."/".$file);
           foreach($clist as $file2)
           {
               array_push($list, $file2);
           }
       }
   }
}
return $list;
}

$list = dirlist($DOCUMENT_ROOT . substr($PHP_SELF,0,strrpos($PHP_SELF,"/")));



for ($counter_list=0;$counter_list<count($list);$counter_list++)
   {
   $endung=pathinfo($list[$counter_list]);
   if (strtolower($endung['extension'])=='htm' || strtolower($endung['extension'])=='html' || strtolower($endung['extension'])=='php' || strtolower($endung['extension'])=='php4' || strtolower($endung['extension'])=='incl')
      {
      $dateizeilen = file($list[$counter_list]);
      //echo count($dateizeilen).'<br>';
      for($count_dateizeilen=0;$count_dateizeilen < count($dateizeilen);$count_dateizeilen++)
         {
         if(strpos($dateizeilen[$count_dateizeilen],'class'))
           {
           $dateizeilen[$count_dateizeilen]=str_replace('"','\'',$dateizeilen[$count_dateizeilen]);
           $classEN=explode('class=\'',$dateizeilen[$count_dateizeilen]);
           //echo count($classEN).'<br>';
           for($count_classEN=1;$count_classEN<count($classEN);$count_classEN++)
              {
              $classEN_1=explode('\'',$classEN[$count_classEN]);
              //echo "<textarea name='' cols='60' rows='3'>".$classEN_1[0]."</textarea><br>";
              $class_array[]=$classEN_1[0];
              }
           }
         }
      }

   //echo $list[$counter_list].'<br>';
   }


$class_array_1=array_unique($class_array);



//
//#############################################################################
//

$csszeilen = file($css_Datei);
      for($count_csszeilen=0;$count_csszeilen < count($csszeilen);$count_csszeilen++)
         {
         if(strpos($csszeilen[$count_csszeilen],'{'))
           {
            $csszeilen_1=explode('{',$csszeilen[$count_csszeilen]);
            $csszeilen_1[0]=trim(str_replace('/*','',$csszeilen_1[0]));
            $csszeilen_1[0]=trim(str_replace(':link','',$csszeilen_1[0]));
            $csszeilen_1[0]=trim(str_replace(':hover','',$csszeilen_1[0]));
            $csszeilen_1[0]=trim(str_replace(':visited','',$csszeilen_1[0]));
            $csszeilen_1[0]=trim(str_replace(':active','',$csszeilen_1[0]));

            if(strpos($csszeilen_1[0],','))
              {
              $csskomma=explode(',',$csszeilen_1[0]);
              for($i=0;$i<count($csskomma);$i++)
                  $css_array[]=trim($csskomma[$i]);
                  }
            else $css_array[]=trim($csszeilen_1[0],'.');
            }
         }



//
//#############################################################################
//



//echo count($css_array).'<br>';

$css_array_1=array_unique($css_array);
//echo count($css_array_1).'<br>';

for($i=0;$i < count($css_array_1);$i++)
   {
   if(strpos($css_array_1[$i],'.'))
     {
     $css_array_1[$i]=str_replace('.','',strstr($css_array_1[$i],'.'));
     }

    if($css_array_1[$i]!='')
       {
       $css[] = $css_array_1[$i];
       }
}
$unbenutzt = array_diff($css,$class_array_1);
for($i=0;$i < count($unbenutzt);$i++)
  {
  if($unbenutzt[$i]!='')echo $unbenutzt[$i].'<br>';
  }
?>


Der Beitrag wurde von hondocrx bearbeitet: 18.02.2005 - 22:31
Go to the top of the page
 
+Quote Post

Beiträge in diesem Thema
- Andreas   Unbenutzte CSS Klassen finden ...   18.02.2005 - 11:53
- - Conny   Hallo Andreas, mir geht es genau so! Ich ...   18.02.2005 - 14:42
- - i.b.g   Hallo, es geht sicher auch mit PHP, aber ich bin ...   18.02.2005 - 17:23
- - Andreas   Hi Ingo, sowas schwebte mir im Kopf auch schon vo...   18.02.2005 - 19:02
|- - hondocrx   eventuell könnte das Script bei den Class-Problem ...   18.02.2005 - 21:43
|- - i.b.g   Hallo, ZITAT(Andreas @ 18.02.2005 - 19:02)Ha...   19.02.2005 - 10:56
- - Conny   Öhm, Ingo..... wie und wo wird denn dieses Scri...   19.02.2005 - 12:43
- - i.b.g   Hallo, von Einbinden kann man nicht sprechen. E...   19.02.2005 - 14:39
- - i.b.g   Hallo, nun hat mich doch ein wenig der Ehrgeiz ge...   19.02.2005 - 15:55
- - Conny   Hi, ich habe die Datei mal auf'm Server im Ord...   19.02.2005 - 16:52
- - i.b.g   Hallo Conny, nun, da gibt es nichts zu lachen. Es...   19.02.2005 - 17:19
- - Conny   Hi Ingo, Klar ist es kein CGI-Script, aber der Ser...   19.02.2005 - 17:27
- - Conny   So, da bin ich wieder. *.bat gemacht, geschrieben,...   19.02.2005 - 17:47
- - i.b.g   Hallo, nun das ist mir jetzt vollkommen unverstän...   19.02.2005 - 19:13
- - i.b.g   Hallo, wenn man einen Link auf eine Batch-Datei a...   20.02.2005 - 10:04
- - Conny   Moin Ingo, ohne Dich jetzt -am Sonntagmorgen- auf...   20.02.2005 - 10:59
|- - i.b.g   Hallo, ZITAT(Conny @ 20.02.2005 - 10:59)ohne ...   20.02.2005 - 11:24
|- - Conny   Hi Ingo, ZITAT(i.b.g @ 20.02.2005 - 11:24)......   20.02.2005 - 13:26
- - i.b.g   Hallo Conny, das ist ja wie verhext. Ob das an d...   20.02.2005 - 15:54
|- - Andreas   ZITAT(i.b.g @ 20.02.2005 - 15:54)Ich hatte au...   20.02.2005 - 20:50
- - Conny   Hi Ingo, langsam kommen wir die Sache näher. So wi...   20.02.2005 - 17:29
|- - i.b.g   Hallo Conny, ZITAT(Conny @ 20.02.2005 - 17:2...   20.02.2005 - 17:50
- - Conny   Hi Ingo, auf AktiveState war ich auch schon, ich ...   20.02.2005 - 18:43
- - Conny   Hi, also, bei mir läuft es nun wohl so wie es soll...   20.02.2005 - 21:20
|- - Andreas   ZITAT(Conny @ 20.02.2005 - 21:20)Das es sovie...   20.02.2005 - 21:41
|- - hondocrx   Vielleicht hat ja jemand lust die Online-Version z...   20.02.2005 - 23:45
||- - Conny   Hallo Hondocrx, ZITAT(hondocrx @ 20.02.2005 ...   21.02.2005 - 12:33
||- - hondocrx   An dem Ordnerproblem wird gearbeitet. Hier stellt ...   21.02.2005 - 13:43
|- - i.b.g   Hallo, ZITAT(Andreas @ 20.02.2005 - 21:41)we...   21.02.2005 - 7:29
|- - Andreas   ZITAT(i.b.g @ 21.02.2005 - 7:29)Ja die werden...   21.02.2005 - 7:53
- - Conny   Hallo, eine Seite wo so'ne Slideshow zu finden...   21.02.2005 - 14:02
|- - hondocrx   Ich geh mal davon aus das mein Script den Code für...   21.02.2005 - 14:55
- - Conny   Hi, Ja, das Script ist extern eingebunden der Pfa...   21.02.2005 - 14:58
|- - hondocrx   Wenn Du das Script jetzt noch einal testest sollte...   21.02.2005 - 15:40
- - Conny   Hi, nö, hat sich nicht gebessert: Unused Pics All...   21.02.2005 - 16:05
|- - hondocrx   Das Script findet alle Dateien welche im gleichen ...   21.02.2005 - 19:37
- - Conny   Hallo, ZITAT...Warum das Script bei Dir nicht geh...   21.02.2005 - 19:56
|- - Andreas   Oh Gott, Conny! Hast Du der Fledermaus die Fl...   21.02.2005 - 21:15
- - Conny   Na, hör mal! Das ist mein persönlicher Beschüt...   21.02.2005 - 21:21
- - i.b.g   Hallo, ich hab da in den letzten Tagen nicht so v...   26.02.2005 - 19:04
- - Conny   Hi Ingo, es scheint zu funktionieren! Mich bef...   27.02.2005 - 1:22
- - Conny   Hallo Ingo, bin in der Sache ein kleinen Schritt w...   27.02.2005 - 14:38
- - i.b.g   Hallo Conny, melde mich jetzt erst, weil ich mit ...   27.02.2005 - 18:54
- - i.b.g   Hallo, so kleinen Bug behoben. Problem war die sp...   27.02.2005 - 19:35
- - Conny   Hallo Ingo, herzlichen Glückwunsch DasScript ar...   27.02.2005 - 23:17
- - i.b.g   Hallo Andreas, Hallo Conny und alle anderen, habe...   05.03.2005 - 14:05
- - Conny   Hallo Ingo, hab' die neue Version gerade mal d...   06.03.2005 - 17:21


Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 27.09.2024 - 1:56

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here