Ausgabe von printf nicht an Browser senden sondern in Variable speichern?

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

  • Ausgabe von printf nicht an Browser senden sondern in Variable speichern?

    Hi, ich habe ein Problem mit einer Klasse, die ich gefunden habe.
    Oder besser gesagt, habe ich ein Problem mit der Ausgabe.

    Es ist eine Klasse, die eine Baumstruktur für ein Menü darstellen kann.
    Leider wird die Ausgabe hier direkt an den Browser übergeben.
    Ich bräuchte aber die Ausgabe in einer Variable. Die echo's ersetzen ist ja kein problem, aber wie ich den Wert von printf in eine Variable bekomme ist mir ehrlichgesagt schleierhaft. Ich habe schon nach einer Funktion gesucht, die die Ausgabe NICHT an den Browser schickt. Ich hoffe, dass mir jemand weiterhelfen mag.


    Hier die Klasse:

    PHP-Code:
    <?php

    class menu {
        var 
    $name;
        var 
    $items;
        var 
    $open;
        var 
    $closed;
        var 
    $indent;

        function 
    menu($name,
                      
    $open '-',
                      
    $closed '+',
                      
    $indent '&nbsp; &nbsp; '
                     
    )
        {
            
    $this->items  = array();
            
    $this->name   $name;
            
    $this->open   $open;
            
    $this->closed $closed;
            
    $this->indent $indent;
        }

        function 
    add($name$href ""$target "") {
            
    $n count($this->items);

            if (
    is_object($name)) {
                
    $this->items[$n] = $name;
            } else {
                
    $this->items[$n]['name'] = $name;
                
    $this->items[$n]['href'] = $href;
                
    $this->items[$n]['target'] = $target;
            }
        }

        function 
    show($nest 0) {
            
    $urlname strtr($this->name' ''_');
            
    $indent '';
            global $
    $urlname;
            global 
    $PHP_SELF;
            global 
    $QUERY_STRING;

            if (
    $nest) {
                
    $indent str_repeat($this->indent$nest);
            }

            if (isset($
    $urlname)) {
                
    printf('%s<a href="%s?%s">%s</a><br>',
                       
    $indent $this->open,
                       
    $PHP_SELF,
                       
    ereg_replace("{$urlname}=&"''$QUERY_STRING),
                       
    $this->name);
                echo 
    "\n";

                while (list(,
    $item) = each($this->items)) {
                    if (
    is_object($item)) {
                        
    $item->show($nest 1);
                    } else {
                        
    printf('%s<a href="%s"%s>%s</a><br>',
                               
    $indent $this->indent,
                               
    $item['href'],
                               (!empty(
    $item['target']) ? ' target="' .
                                                          
    $item['target'] . '"'
                                                        
    ''),
                               
    $item['name']);
                        echo 
    "\n";
                    }
                }
            } else {
                
    printf('%s<a href="%s?%s=&%s">%s</a><br>',
                       
    $indent $this->closed,
                       
    $PHP_SELF,
                       
    $urlname$QUERY_STRING,
                       
    $this->name);
                echo 
    "\n";
            }
        }
    }

    ?>
    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

  • #2
    sprintf()

    Kommentar


    • #3
      Original geschrieben von Trashar
      sprintf()
      deshalb steht ja im manual bei printf auch extra
      "Siehe auch print(), sprintf(), ..."
      dabei ...

      RTFM.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar

      Lädt...
      X