[off] tag

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

  • [off] tag

    winke winke!

    so leutz, jetzt mal alle mitdenken. ich weiss dass das nicht leicht ist aber ...
    ich versuche gerade für einen forencode einen [off] tag zu coden. um beim schreiben eines beitrags das parsen von [b ] usw. abzuschalten, und wieder einzuschalten. ich habe auch schon ein halbwegs funktionierendes script. nur erstens ist es zu aufwendig beim einbinden, und zweites funzt der [off] tag nur einmal. bei der zweiten anwendung wird der rest vom text einfach abgeschnitten ...

    Code:
    <?php
    // Anzeigeseite
    
    $includestring = "functions.php";
    include("$includestring");
    
    $text = "hallo ich bin der [b ]dicke text[/b ] hier bin ich dünn!
             jetzt kommt der off kram [off]wehe [b ]hier ist es dick[/b ] [/off]
    		 ... hier geht es ganz normal weiter [b ]dick?[/b ] [off]blabl[b ]huhu
    		 [/b ] [/off]
    		";
    		 
    echo "
          hallo ich bin ne testseite! <p>
    	 ";
    
    if($off == "on") {
    
                      $text_rest = off_1("$text");
    				  $text = off_2("$text");
    				 
    				 }
    
    if($bold == "on")  {
                        $text = dick("$text");
    				   }
    if($off == "on") {
                      $repair = explode("~", $text);
    				  $text = $repair[0]."$text_rest".$repair[1];
    				 }
    				   
    echo nl2br($text);
    
    ?>
    
    <?php
    
    // functions.php 
    
    function off_1($string) {
    
           $hack = explode("[off]",$string);
    	   $again = explode("[/off]",$hack[1]);
    	   $string = $again[0];
    	   return($string);
    	   
    	                     }
    
    function off_2($string) {
    
           $hack = explode("[off]",$string);
    	   $again = explode("[/off]",$hack[1]);
    	   $string = $hack[0]."~".$again[1];
    	   return($string);
    	   
    	                     }						 
    
    function dick($string) {  
    
          $hack = "|(\[b\])(.*?)(\[/b\])|s";
          $code = "<b class='bred'>\\2</b>";
          $string = preg_replace($hack,$code,$string);
    	  return($string); 
    	                    }
    					  
    ?>
    ... ich höre
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

  • #2
    hmm,

    Also das hier geht :
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    	<title>Untitled</title>
    </head>
    
    <body>
    <?php
    // functions.php 
    function off_1($string) {
    $hack = explode("[off]",$string);
    $again = explode("[/off]",$hack[1]);
    $string = $again[0];
    return($string);
    }
    
    function off_2($string) {
    $hack = explode("[off]",$string);
    $again = explode("[/off]",$hack[1]);
    $string = $hack[0]."~".$again[1];
    return($string);
    }						 
    
    function dick($string) {  
    $hack = "|(\[b\])(.*?)(\[/b\])|s";
    $code = "<b class='bred'>\\2</b>";
    $string = preg_replace($hack,$code,$string);
    return($string); 
    }
    ?>
    <?php
    $off = "on";
    $bold = "on";
    // Anzeigeseite
    
    $text = "hallo ich bin der [b]dicke text[/b] hier bin ich dünn!".
    		"jetzt kommt der off kram [off]wehe [b]hier ist es dick[/b] [/off]".
    		"... hier geht es ganz normal weiter [b]dick?[/b] [off]blabl[b]huhu".
    		"[/b] [/off]";
    echo "hallo ich bin ne testseite! <p>";
    if($off == "on") {
    $text_rest = off_1("$text");
    $text = off_2("$text");
    }
    if($bold == "on")  {
    $text = dick("$text");
    }
    if($off == "on") {
    $repair = explode("~", $text);
    $text = $repair[0]."$text_rest".$repair[1];
    }
    echo nl2br($text);
    ?>
    </body>
    </html>
    Was hab ich gemacht ? Ich hab $bold = "on" und $off = "on" eigefügt. Ich sehe dein Problem also nicht !

    Kommentar


    • #3
      ersetze mal $text durch:

      $text = "hallo ich bin der dicke text hier bin ich dünn!".
      "jetzt kommt der off kram [off]wehe hier ist es dick [/off]".
      "... hier geht es ganz normal weiter dick? [off]blablhuhu".
      " [/off]
      hier soll es dann weitergehen. an dieser stelle nochmal off [off][b ]hallo werde ich angezeigt?[/ b][/off]
      antwort: nein :-)";

      dann weisst du was ich meine
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        hmm,

        okay,
        Wenn du auch immer nur die ersten beiden Elemente wieder einbaust
        Ersetze er
        Code:
        $text = $repair[0]."$text_rest".$repair[1];
        durch
        Code:
        $text = "";
        for ($i=0;$i<=count($repair);$i=$i+2)
        	{
        		$text .= $repair[$i]."$text_rest".$repair[$i+1];
        	}
        }

        Kommentar


        • #5
          wunnerbar
          so hatte ich mir das vorgestellt. bin nur nicht drauf gekommen. ... aber wofür bist sonst da
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar

          Lädt...
          X