CommNews Forum Home  

Zurück   CnC Foren > Verschiedenes > Tech-Support / Tech-Talk

Antworten
 
Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 20-10-2004, 13:01
Benutzerbild von Sven
Sven Sven ist offline
Tech-Admin

 
Registriert seit: Dec 2000
Ort: Neuss
Beiträge: 37.842
Sven ist ein C...
OL Nick: xysvenxy
Style: cncboard
PHP: Bestimmte Stelle in Textdatei suchen und ab dort lesen....

Ich versuch mich ein wenig daran ein dynamisches Menü aus einer .txt zu lesen und so...
Hier das, was ich habe:
PHP-Code:
<?
$fp=fopen("links.txt","r");
  
while($line=fgets($fp,1024)) {
    $arr=explode("|",$line);
    $url=$SCRIPT_NAME;

    $testvar=get_caller($url);
    if($testvar==$arr[0]) {
        echo "<a href=".$arr[0]."><b>".$arr[1]."</b></a>";
        echo "<br />";
    }
    else {
        echo "<a href=".$arr[0]."><i>".$arr[1]."</i></a>";
        echo "<br />";
    }



fclose($fp);

function get_caller($url) {
    $lastpos=strrpos($url,"/")+1;
    $caller=substr($url,$lastpos);
    return $caller;
}

?>
Inhalt der .txt:
Code:
index.php|Index
test.php|Test
Nun möchte ich gerne Untermenüs ermöglichen, sprich die Textdatei könnte so aussehen:
Code:
[Haupt]
index.php|Index|Unter
test.php|Test|-
[Unter]
unter.php|Unter
Es soll also, wenn in $arr[2] 'Unter' erscheint, festgesetzt werden daß es für diesen Link einen untergeordneten Link gibt und dieser soll dann entsprechend dargestellt werden.
Ich müsste also zunächst die Datei öffnen und nach [Haupt] suchen und dann alles in diesem Abschnitt bis [Unter] einlesen.
Ist dann für einen Fall gegeben daß es einen untergeordneten Link gibt ($arr[2]=="Unter"), so soll alles, was im Abschnitt [Unter] steht eingelesen und dargestellt werden.

Wie mach ich das?
__________________
Zitat:
Wir sind im Augenblick dabei, zu prüfen, ob es im öffentlichen Interesse liegt, ihnen mitzuteilen, ob wir die Informationen haben, die Sie erbitten, und ob es, sollte das der Fall sein, im öffentlichen Interesse liegt, Ihnen diese Informationen zur Verfügung zu stellen.
Mit Zitat antworten
  #2  
Alt 20-10-2004, 14:47
Benutzerbild von se7en
se7en se7en ist offline
Clan Moderator

 
Registriert seit: Jul 2001
Ort: Schwalmstadt
Beiträge: 2.338
se7en hat noch keine Bewertung oder ist auf 0
se7en eine Nachricht über ICQ schicken
OL Nick: se7en
Style: GLA
vielleicht hilft Dir meine Idee Ich würde es mir einfacher machen mit einer anderen Datenstruktur:

Code:
index.php|Index
unter1.php|Index|Unter1
unter2.php|Index|Unter2
test.php|Test|-
thema3.php|Thema3
unter3.php|Thema3|Unter3
unter4.php|Thema3|Unter4
hilft das?
__________________
2nd Clanleader and Webmaster of

Mit Zitat antworten
  #3  
Alt 20-10-2004, 15:14
Benutzerbild von Sven
Sven Sven ist offline
Tech-Admin

 
Registriert seit: Dec 2000
Ort: Neuss
Beiträge: 37.842
Sven ist ein C...
OL Nick: xysvenxy
Style: cncboard
Ja, das war die Möglichkeit die mir auch vorschwebte wenn ich nix anderes finde
__________________
Zitat:
Wir sind im Augenblick dabei, zu prüfen, ob es im öffentlichen Interesse liegt, ihnen mitzuteilen, ob wir die Informationen haben, die Sie erbitten, und ob es, sollte das der Fall sein, im öffentlichen Interesse liegt, Ihnen diese Informationen zur Verfügung zu stellen.
Mit Zitat antworten
  #4  
Alt 20-10-2004, 15:25
Benutzerbild von maxl
maxl maxl ist offline
Avatar

 
Registriert seit: Aug 2001
Ort: Krems (Österreich)
Beiträge: 1.826
maxl hat noch keine Bewertung oder ist auf 0
maxl eine Nachricht über ICQ schicken
OL Nick: Desertm4x
Style: cncboard
Ich kenne mich mit PHP leider nicht besonders gut aus, weil ich Perl bevorzuge, aber ich versuche dennoch zu helfen.

Ich würde die Textdatei einfach Zeile für Zeile in einen assoziativen Array (Hash) einlesen, der in etwa diese Struktur hat:
$hash[Kategorie][Name]
Der Wert ist dann eine Referenz auf eine andere Hashtabelle, die die Werte URI und Kategorie enthält. URI ist ein Skalar und Kategorie ist eine Referenz auf $hash[Unterkategorie].

Um die Textdatei auszulesen, kannst du einfach for dem while eine Variable $aktuelle_kategorie initieren. Falls die Zeile dann das Format [(.*)] hat, dann setzt du $aktuelle_kategorie auf den Wert zwischen den Klammern ($1?).
Dann solltest du die einzelnen Zeilen den Kategorien zuordnen können.

Auf diesem Weg kannst du das Menü recht leicht ausgeben lassen. Du könntest eine function schreiben, die mit der Kategorie 'Haupt' beginnt, dann den Schlüssel des Hash und die URI ausgibt und falls die Kategorie gesetzt ist, und auch angezeigt werden soll, ruft sich diese function rekursiv auf.

Edit:
Das ist nur eine Möglichkeit, wie man es in Perl realisieren könnte, mit den Mitteln, von denen ich weiß, dass sie in PHP auch existieren sollten. Es gibt sowohl für Perl als auch für PHP vermutlich ellegantere Möglichkeiten.
__________________


News um C&C!
WENN DU NICHT MEHR WEITER WEISST,
DANN ZEICHNE DIR NEN EINHEITSKREIS

Geändert von maxl (20-10-2004 um 15:47 Uhr).
Mit Zitat antworten
Antworten

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:11 Uhr.


Powered by vBulletin Version 3.7.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS

Affiliates
United Forum GetBoinKeD cnc.onlinewelten.de