class und function

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • class und function

    Ich habe ein Menü-Script, das mit Navigations-Gruppen arbeitet, die jeweils in eine Datei geschrieben werden.
    In der ersten Zeile wird der Name der Navigations-Gruppe mit
    "~Name der Gruppe~"
    geschrieben.
    Die Links in den folgenden Zeilen sind mit Pipes ( | ) getrennte Werte

    Um diesen auszulesen habe ich die folgende Funktion get_nav_name():
    PHP-Code:
    $menu_dir $lib_dir "lib/menucnt/";

    require(
    "class.dir.php");
    $d=new PHP_Dir();               //create a new PHP_Dir object
    $d->set_mask("*.adm");          //set the default mask to '*.txt'
    $admfiles=$d->list_files($menu_dir);   //change this if you're a *nix or Linux user

    function get_nav_name($get_file) {
        global 
    $menu_dir;

        
    $openfile $menu_dir $get_file;
        
    $fp fopen($openfile"r+");
        
    $file_contents fread($fpfilesize($openfile));
        
    fclose($fp);
        
    $line explode("\n"$file_contents);
        
    $i 0;
        
    $size sizeof($line) - 2;
        
    $nav_tab_width $nav_tab_width 2;
        while(
    $i <= $size) {
            if(
    strstr($line[0], "~") == true) {
                
    $navname ereg_replace("~"""$line[0]);
                
    $size sizeof($line) + 1;
                
    //break;
            
    } else {
                
    $navname str_replace("_"," ",$get_file);
                
    $navname str_replace(".adm","",$navname);
                
    $newname "~" $navname "~";
                
    fputs($fp,$newname "\n");
                
    //break;
            
    }
            echo 
    $navname;
            
    $i++;
        }
        return 
    $navname;

    Die Funktion wird an verschiedenen Stellen mit folgendem Code aufgerufen:
    PHP-Code:
    if ($action)
        for(
    $p=0;$p<sizeof($admfiles);$p++) {
            
    $addnav_name[$p] = get_nav_name($admfiles[$p]);
            
    $addnav_file[$p] = $menu_dir $admfiles[$p];

            echo 
    "Tue irgend was";
        }

    Ich bekomme aber jedesmal nach ausführen der Aktion $action (dieser Wert variiert) die Meldung
    Code:
    Fatal error: Cannot redeclare class php_dir in l:\www\admin\class.dir.php on line 5
    Wie kann ich diese Meldung verhindern?
    Die jeweilige Aktion selbst wird komischerweise ausgeführt.

    Guido

  • #2
    Habs gefunden:
    Habe die Class folgendermassen umschlossen:
    PHP-Code:
    if (!class_exists(PHP_Dir) ) {} 
    Trotzdem danke an alle, die eventuell gerade grübeln.
    So stehts ja auch unter http://www.php.net/manual/de/function.class-exists.php
    Guido

    Kommentar

    Lädt...
    X