KLASSE Ergebnis / Variable übergeben

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

  • KLASSE Ergebnis / Variable übergeben

    Ich habe mir eine Klasse geschrieben mit der man HTML-Code erzeugen kann, welcher dann in einer Datei gespeichert wird. Nun habe ich wahrscheinlich einen Denkfehler und komme nicht weiter.

    In die Klasse werden Variablen übergeben, welche verschiedene Funktionen durchlaufen. Das klappt auch alles. Im Ergebnis gibt es dann die Variable:

    $this->html_export.

    Wenn ich nun die Klasse aufrufe:
    PHP-Code:
    $html_code = &new htmlcode_ex;
    $html_code->convert_html(a,b,c,d); 
    wird die Ergebnisvariable $this->html_export nicht zur Verfügung gestellt.

    Wenn ich in der Klasse den Befehl echo $this->html_export; nutze, wird mit der HTML-Code ordentlich ausgegeben (im Bereich <textarea>), so wie er in die Datei geschrieben werden soll. Ich möchte das aber umgehen, da die Variable so immer ausgegeben wird, was nicht stattfinden soll.

    Wie kann ich nun diese Variable außerhalb der Klasse bereitstellen, als Ergebnis der Klasse. In der Klasse soll der echo-Befehl nicht verwendet werden. Ist da global der richtige Weg?

  • #2
    kannst du vllt den gesamten quellcode der klasse posten? so ist da nicht zu helfen.
    1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

    /(bb|[^b]{2})/

    Kommentar


    • #3
      PHP-Code:
      /*Dateien anlegen Filemaker*/
      class filemaker 
       
      {
              var 
      $pfad;
          var 
      $html_content;
          var 
      $filename;
          var 
      $file;
          var 
      $quittung;
          var 
      $cov;
          var 
      $v_chmod;
          var 
      $v_chown;
                  
           
      //Konstruktor
          
      function makefile($var_content$var_pfad
                           
      $var_filename$var_chmod$var_chown$var_quittung){
              
              
      $this->html_content $var_content;
              
      $this->pfad $var_pfad;
              
      $this->filename $var_filename;
              
      $this->v_chmod $var_chmod;
              
      $this->v_chown $var_chown;
              
      $this->quittung $var_quittung;
              
      $this->file_ex "".$this->pfad."".$this->filename."";
              
              
      //Debug
                      //echo "".$this->file_ex."<br>";
              //echo "".$this->quittung."<br>";
              
              //Ueberpruefung ob File existiert
              
      if(file_exists($this->file_ex)){

               
      //Ueberpruefung, wenn File existiert ob ueberschreiben bestaetigt wurde ja
               
      if($this->quittung=="1"){
                       
                echo 
      "Das File (".$this->filename.") existierte bereits!<br>\n";
                
      $this->makefile_new();
                
               }
               
               
      //Ueberpruefung, wenn File existiert 
                                                 
      ob ueberschreiben bestaetigt wurde nein
               
      if($this->quittung=="0"){
                       
                echo 
      "Das File (".$this->filename.") existiert bereits!<br>\n"
                    
      ."<span class=\"note_rot\">
                                                      Wenn das File &uuml;berschrieben 
                                                      werden soll, bitte best&auml;tigen 
                                                      Sie mit -OK-.</span><br>\n"
      ;
                
      $this->makefile_edit();
                
               }
               
              }else{
              
               echo 
      "Das File (".$this->filename.") existierte noch nicht!<br>\n";
               
      $this->makefile_new();
               
              }
          }
          
          
      //File neu erstellen
          
      function makefile_new(){
          
                  
      //Slash entfernen
              
      $this->html_content=stripslashes($this->html_content);
                      
              
      //Datei anlegen
              
      $openfile=fopen($this->file_ex,"w+");
              if (
      fputs($openfile,$this->html_content)){
               if(
      fclose($openfile)){
                if(
      chmod($this->file_ex,$this->v_chmod)){
                 
      //if(chown($this->file_ex,$this->v_chown)){
                  
      echo "Die Datei wurde erfolgreich erstellt und gespeichert.<br>\n"
                      
      ."Speichertort: <i>".$this->file_ex."</i><br>\n"
                 
      //}    
                
      }     
               }     
              } 
          
          }
          
          
      //File editieren
          
      function makefile_edit(){
          
                  
      //Slash entfernen
              
      $this->html_content=stripslashes($this->html_content);
          
              
      //Formular fuer Hinweis und Bestaetigung
              
      echo "<br><form action='".$_SERVER['REQUEST_URI']."' method='POST'>\n"
                  
      ."<textarea rows='5' name='content' cols='90' readonly>";
                  
                  
      //an convert_u uebergeben um HTML-Code zu erzeugen
                  
      ob_start();   
                       echo 
      $this->html_content;
                  
      $co_in ob_get_contents();
                          
      ob_end_clean();
                  
      $this->convert_u($co_in);        
                  
              echo 
      "</textarea>\n"
                   
      ."<input type='hidden' name='pfad' 
                   value='"
      .$this->pfad."'>\n"
                   
      ."<input type='hidden' name='filename' 
                   value='"
      .$this->filename."'>\n"
                   
      ."<input type='hidden' name='filemaker_quittung' 
                   value='1'>\n"
                   
      ."<input type='submit' name='submit' 
                   value='OK - File - &uuml;berschreiben'>\n"    
                  
      ."</form>";
          }
          
          
      //Umlaute ersetzen
          
      function convert_u($convert_in){
              
      $this->cov $convert_in;
              
              
      //Umlaute und Sonderzeichen ersetzen
                  
      $this->cov ereg_replace("ä","&auml;",$this->cov);
              
      $this->cov ereg_replace("Ä","&Auml;",$this->cov);
              
      $this->cov ereg_replace("ü","&uuml;",$this->cov);
              
      $this->cov ereg_replace("Ü","&Uuml;",$this->cov);
              
      $this->cov ereg_replace("ö","&ouml;",$this->cov);
              
      $this->cov ereg_replace("Ö","&Ouml;",$this->cov);
              
      $this->cov ereg_replace("ß","&szlig;",$this->cov);
              
      $this->cov ereg_replace("§","&dect;",$this->cov);
              
      $this->cov ereg_replace("%","%",$this->cov);
                      
              
      //HTML-Codes erzeugen
              
      $this->cov htmlentities($this->cov,ENT_NOQUOTES);
              
              
      //Ausgabe des Quelltextes mit HTML-Codes fuer Bereich textarea
              
      echo $this->cov;
          }

          
       } 
      Es geht um das Ergebnis der Funktion function convert_u($convert_in), welche so aufgerufen wird:

      PHP-Code:
      $html_code = &new filemaker;
      $html_code->convert_u($html); 
      Es ist meine 1. Klasse, also ich lerne noch. Das Ergebnis soll dann mit den übrigen Funktionen abgespeichert werden. Das klappt auch, wenn ich mir den Quellcode vorher im Bereich textarea ausgeben lasse und dann erneut in die Klasse gebe. Möchte das ganze nun automatisieren, dass man verschiedene Dateien hintereinander automatisch erstellen kann. Dafür muss aber der echo-Befehl in der Fkt. convert_u() raus.
      Zuletzt geändert von Daniel1975; 22.04.2005, 10:36.

      Kommentar


      • #4
        Re: KLASSE Ergebnis / Variable übergeben

        warum schreibst du dir nicht eine zusätzliche methode, die den inhalt von $this->html_export zurückgibt?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Woher soll auch plötzlich die (Klassen-)Variable $html_export kommen? Auch wenn du sie in der Klasse selbst aufrufst, dürfte sie dir nichts zuückgeben, denn sie taucht in deiner Klasse sonst überhaupt nicht auf.

          $this->cov enthält anscheinend das, was du gern ausgeben möchtest.
          Also vielleicht so:
          PHP-Code:
          $html_code = &new filemaker
          $html_code->convert_u($html);
          echo 
          $html_code->cov

          Kommentar


          • #6
            ja oben im 1. thread waren die variablen nur ein beispiel. Bei echo $html_code->cov; funktioniert die Ausgabe nur, wenn in der Fkt. function convert_u() der Befehl echo $this->cov; existiert. Das möchte ich aber umgehen und den Inhalt der Variable $this->cov auch ausserhalb der Klasse verwenden ohne per echo auszugeben.

            Kommentar

            Lädt...
            X