zeig deinen code! Ohne gehts wohl nicht!
"oberverzeichnisse auslesen"
Einklappen
X
-
so nun hatte ich wieder etwas zeit an den codeschnipsel weiterzubasteln.
das problem an den obigen schnipsel war das der link nicht richtig gesetzt wurde, die bezeichnugn stimmte aber
nun habe ich mich mal ein wenig mit den arrays befasst und das hier ist dabei rausgekommen:
da er den code falsch darstellt mal ohne vbcode für php (korrektur ... so stellt er den code auch nicht richtig da denn hinter href isdn zwei \\ also a href=\\
print '<a href="../../../">home</a> > ';
//das kann man doch bestimmt auch eleganter lösen? denn sonst müsste
//ich ja auch auf die jeweilige anzahl der unterverzeichnisse achten...
$text_rr = $_SERVER['REQUEST_URI'];
$text_arr = explode("/",$text_rr);
for ($i=1;$i<count($text_arr)-2;$i++)
$ebene=$text_arr[1];
echo '<a href=\\' . $ebene . '\>' . $text_arr[1] .'</a> > ';
$ebene1=$text_arr[1].'/'.$text_arr[2];
echo '<a href=\\' . $ebene1 . '\>' . $text_arr[2] .'</a> > ';
$ebene2=$text_arr[1].'/'.$text_arr[2].'/'.$text_arr[3];
echo '<a href=\\' . $ebene2 . '\>' . $text_arr[3] .'</a> > ';
echo $text_arr[4]."<br>";
ausgegeben wird:
home > data > stecker > mfs > test5.php
naja wie ihr seht ist das noch sehr unstruckturiert und im moment nur manuell für jedes einzelne unterverzeichnis realisiert. das heißt wenn es mehr oder weniger unterverzeichnisse sind müsste ich das jedesmal manuel mit einer anderen unterverzeichnisanzahl realisieren. hat da wer ne idee wie ich das automatisch auslesen kann wieviel unterverzeichnisse es sind (was ja mit count($text_arr)-2 ausgelesen wird) und dann dieses entspechend im script eingebaut wird das es automatisch realisiert wird die entspechende anzahl ebenen einzufügen?
danke schonmal vorab für eure hilfeZuletzt geändert von sprunz; 19.09.2003, 18:28.
Kommentar
-
die ebene in der du bist kriegst du über $i raus
dann schaust du mal, was du mit str_repeat anfangen kannst und wirst glücklich *g*Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
also was mich an str_repeat stört ist das man damit ja "nur" immer die gleichen zeichenketten wiederholen kann. entweder sehe ich den wald vor bäumen nicht oder aber ich mach bei der umsetzung was falsch.
meine versuche waren mit str_repeat das array wieder zusammenzufügen nur das funktioniert irgendwie nicht. denn sobald der int_mutiplier größer 1 ist wiederholt er ja den selben ausdruck nur das funktioniert ja dann nicht...
Kommentar
-
ahh du beziehst dich auf das obere problem mit der homeverlinkung ich hatte versucht das mit den verzeichnissen so zu lösen...
bei meinen problem bei den verzeichnissen komme ich einfach nicht weiter. ich weiss nicht wie ich es innerhalb der schleife lösen soll das er einerseits die einzelnen benutzten verzeichnissnamen also home/data/stecker/mfs sich bei jeden durchgang merkt (und aneinanderreiht in einer variablen) und in die entspechende href anweisung reinschreibt. die href bezeichnung funktioniert ja aber die href verlinkung nicht.
Kommentar
-
Original geschrieben von sprunz
ich weiss nicht wie ich es innerhalb der schleife lösen soll das er einerseits die einzelnen benutzten verzeichnissnamen also home/data/stecker/mfs sich bei jeden durchgang merkt (und aneinanderreiht in einer variablen) und in die entspechende href anweisung reinschreibt. die href bezeichnung funktioniert ja aber die href verlinkung nicht.
diesen splitest du am einfachsten mit explode() am / auf, dann erhältst du ein array mit den einzelnen verzeichnisnamen, "home", "data", "stecker", "mfs".
jetzt verschachtelst du am besten zwei schleifen ineinander:
die äussere geht das komplette array einmal durch.
in der inneren gibst du im ersten durchlauf der äusseren schleife das erste array-element, gefolgt von einem /, als href-inhalt aus, "home/".
im zweiten durchlauf dann die ersten beiden array-elemente, ergibt "home/data/".
im dritten die ersten drei, "home/data/stecker/".
usw. usf.
um zu wissen, in welchem durchlauf der äusseren schleife du dich befindest, lässt du innerhalb der äusseren schleife einen zähler mitlaufen, den du jedesmal um eins erhöhst (bzw. bei einer for-schleife verwendest du einfach die schleifen-zählvarible).
und die innere schleife läuft dann jedes mal so oft, wie es eben der wert dieses zählers angibt.
btw: eventuell sieht es ja schöner aus, wenn da statt
home > data > stecker
die wörter mit grossem anfangsbuchstaben stehen würden,
Home > Data > Stecker
dafür könntest du noch ucfirst() auf die einzelnen wörter anwenden.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
Kommentar