Parser für css-Dateien
philipp
- php
Hallo Ihr!
Ich habe versucht mir einen Parser für css-Dateien zu scheiben. Mein Ziel war es, dass ich die URL eines CSS eingebe und an das PHP schicke. Dieses holt dann mit fopen("$url", "r") das File und sucht alle Selektoren (wie H1, font.klein, etc..) herraus. Das Zweite ist mir aber leider nicht gelungen ...
Kann mir einer Helfen?
Danke Philipp
Hoi
Ich habe versucht mir einen Parser für css-Dateien zu scheiben. Mein Ziel war es, dass ich die URL eines CSS eingebe und an das PHP schicke. Dieses holt dann mit fopen("$url", "r") das File und sucht alle Selektoren (wie H1, font.klein, etc..) herraus. Das Zweite ist mir aber leider nicht gelungen ...
$ar = file($url);
$ps = "";
$selektoren = "";
$as = "";
for($i=0; $<count($ar); $i++)
{ $ps .= $ar[$i];
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}")
{ $ar2 = explode("}", $ps);
for($j=0; $j<count($ar2); $j++)
{ if(strstr($ar2[$j], "{")
{ $ar3 = explode("{", $ar2[$j]);
$selektoren[$as] = trim($ar3[0]);
$ar3++;
}
}
}
}
Jetzt mußt Du nur noch rausfinden, wie Du Kommentare entfernst und Programmierfehler in Style-Sheets abfängst ...
Ciao,
Harry
Ups ...
da hab ich doch glatt eine Zeile und ein paar Klammern vergessen :-(
(tja ... erst Korrekturlesen und dann schicken, net andersrum)
$ar = file($url);
$ps = "";
$selektoren = "";
$as = "";
for($i=0; $<count($ar); $i++)
{ $ps .= $ar[$i];
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}")
// Hier gehört natürlich ganz hinten auch noch eine Klammer hin:
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}"))
{ $ar2 = explode("}", $ps);
for($j=0; $j<count($ar2); $j++)
{ if(strstr($ar2[$j], "{")
// muß heißen:
if(strstr($ar2[$j], "{"))
{ $ar3 = explode("{", $ar2[$j]);
$selektoren[$as] = trim($ar3[0]);
$ar3++;
}
}
// Hier fehlt
$ps = "";
}
}
Das Ergebnis steht übrigens im Array $selektoren.
Harry
hi!
schonmal vielen dank!
aber es gibt ein problem: http://cologne1.center-tag.de/style.php3
$ar = file($url);
$ps = "";
$selektoren = "";
$as = "";
ZEILE 13: for($i=0; $<count($ar); $i++)
{ $ps .= $ar[$i];
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}")
// Hier gehört natürlich ganz hinten auch noch eine Klammer hin:
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}"))
{ $ar2 = explode("}", $ps);
for($j=0; $j<count($ar2); $j++)
{ if(strstr($ar2[$j], "{")
// muß heißen:
if(strstr($ar2[$j], "{"))
{ $ar3 = explode("{", $ar2[$j]);
$selektoren[$as] = trim($ar3[0]);
$ar3++;
}
}
// Hier fehlt
$ps = "";
}
}
Noch ne andere Frage: wie würdest du eine ausgabeliste machen?
danke und gruss philipp
hoi
schonmal vielen dank!
aber es gibt ein problem: http://cologne1.center-tag.de/style.php3
ZEILE 13: for($i=0; $<count($ar); $i++)
^^^ Da hat sich ein "i" vom Acker gemacht: $i<
Noch ne andere Frage: wie würdest du eine ausgabeliste machen?
Schön in 'ner Tabelle :-)
Ciao,
Harry
OK!
Jetzt kommt zumindest kein Fehler mehr ;)
Noch ne andere Frage: wie würdest du eine ausgabeliste machen?
Schön in 'ner Tabelle :-)
Hmmm ja Tabelle, aber du musst wissen ich habe mich noich nie mit array beschäftig!
wie mache ich denn für jeden sich im array befindenden selektor eine neue zeile usw ... ?!
*mirpeinlichsei*
danke philipp
Hoi !
Noch ne andere Frage: wie würdest du eine ausgabeliste machen?
Schön in 'ner Tabelle :-)
Hmmm ja Tabelle, aber du musst wissen ich habe mich noich nie mit array beschäftig!
wie mache ich denn für jeden sich im array befindenden selektor eine neue zeile usw ... ?!
Tststs ...
*mirpeinlichsei*
Zurecht ;-) Das steht in den ersten drei Seiten der PHP-Anleitung ...
for($i=0; $i<count($selektoren); $i++)
echo "<tr><td>".$selektoren[$i]."</td></tr>";
Ciao,
Harry
hi du!
es geht aber leider immer noch nicht, bzw. findeste er nix:
<?
if ($url) {
$ar = file($url);
$ps = "";
$selektoren = "";
$as = "";
for($i=0; $i<count($ar); $i++)
{ $ps .= $ar[$i];
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}"))
{ $ar2 = explode("}", $ps);
for($j=0; $j<count($ar2); $j++)
{
if(strstr($ar2[$j], "{"))
{ $ar3 = explode("{", $ar2[$j]);
$selektoren[$as] = trim($ar3[0]);
$ar3++;
}
}
$ps = "";
}
}
for($i=0; $i<count($selektoren); $i++) {
echo "<b>".$selektoren[$i]."</b><br>"; }
}
?>
online unter [http://cologne1.center-tag.de/style.php3]
woran kann es liegen? gruss philipp
Hoi
es geht aber leider immer noch nicht, bzw. findeste er nix:
<?
if ($url) {
$ar = file($url);
$ps = "";
$selektoren = "";
$as = "";
$as = 0;
... ist besser (und richtig)
for($i=0; $i<count($ar); $i++)
{ $ps .= $ar[$i];
if(strstr($ps, "{") && strstr($ps, "}") && substr_count($ps, "{")==substr_count($ps, "}"))
{ $ar2 = explode("}", $ps);
for($j=0; $j<count($ar2); $j++)
{
if(strstr($ar2[$j], "{"))
{ $ar3 = explode("{", $ar2[$j]);
$selektoren[$as] = trim($ar3[0]);
$ar3++;
Und das muß freilich ...
$as++;
... heißen, sonst gibt's keinen Sinn.
}
}
$ps = "";
}
}
for($i=0; $i<count($selektoren); $i++) {
echo "<b>".$selektoren[$i]."</b><br>"; }
}
?>
Sobald ich wieder daheim bin werd ich's mal gscheid ausprobieren, dann kann ich Dir auch sagen woran's liegt :-)
Ciao,
Harry
hhuhu!
höhö jetzt geht es auch, habe nur die beiden änderungen gemacht!
DANKE!!!!
philipp